l--*_*''' 9 python sorting list
c2=[]
row1=[1,22,53]
row2=[14,25,46]
row3=[7,8,9]
c2.append(row2)
c2.append(row1)
c2.append(row3)
Run Code Online (Sandbox Code Playgroud)
c2 就是现在:
[[14, 25, 46], [1, 22, 53], [7, 8, 9]]
Run Code Online (Sandbox Code Playgroud)
我如何c2以这样的方式排序,例如:
for row in c2:
sort on row[2]
Run Code Online (Sandbox Code Playgroud)
结果将是:
[[7,8,9],[14,25,46],[1,22,53]]
Run Code Online (Sandbox Code Playgroud)
另一个问题是我如何首先按行排序[2]并在行集[1]内排序
Dav*_*ebb 16
key用于sort指定一个参数的函数的参数,该参数用于从每个列表元素中提取比较键.所以我们可以创建一个简单的函数lambda来返回要在排序中使用的每一行的最后一个元素:
c2.sort(key = lambda row: row[2])
Run Code Online (Sandbox Code Playgroud)
A lambda是一个简单的匿名函数. 当你想要创建一个这样简单的单一用途函数时,这很方便.不使用a的等效代码lambda将是:
def sort_key(row):
return row[2]
c2.sort(key = sort_key)
Run Code Online (Sandbox Code Playgroud)
如果要对更多条目进行排序,只需使该key函数按重要性顺序返回包含要排序的值的元组.例如:
c2.sort(key = lambda row: (row[2],row[1]))
Run Code Online (Sandbox Code Playgroud)
要么:
c2.sort(key = lambda row: (row[2],row[1],row[0]))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21308 次 |
| 最近记录: |