当前位置: 首页 > 面试题库 >

在Python中对列表列表进行排序

郭思淼
2023-03-14
问题内容
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]))


 类似资料: