c2=[]
row1=[1,22,53]
row2=[14,25,46]
row3=[7,8,9]
c2.append(row2)
c2.append(row1)
c2.append(row3)
c2
就是现在:
[[14, 25, 46], [1, 22, 53], [7, 8, 9]]
我该如何排序c2
,例如:
for row in c2:
sort on row[2]
结果将是:
[[7,8,9],[14,25,46],[1,22,53]]
另一个问题是我如何首先按row [2]排序,并在其中按row [1]排序
所述key
参数sort
指定用于提取从每个列表元素的比较关键一个参数的函数。因此,我们可以创建一个简单的方法lambda
,该方法返回每行要使用的最后一个元素:
c2.sort(key = lambda row: row[2])
Alambda
是一个简单的匿名函数。 当您想创建一个简单的一次性函数时,它很方便。不使用的等效代码lambda
为:
def sort_key(row):
return row[2]
c2.sort(key = sort_key)
如果要对更多条目进行排序,只需使该key
函数返回一个元组,其中包含要按重要性顺序排序的值。例如:
c2.sort(key = lambda row: (row[2],row[1]))
要么:
c2.sort(key = lambda row: (row[2],row[1],row[0]))