使用lambda函数对列表中的元组进行排序

时间:2014-01-02 18:28:17

标签: python sorting

我要做的是对元组列表进行排序,元组中的第一个单元格可以是多个嵌套元组,但第二个单元格始终是int值,

我的代码:

t = [('d',2), ('b', 1), (('a', 'c'), 2)]
sorted(t, key=lambda x: x[1], reverse=True)

但这不起作用,最后一个嵌套元组保持最终状态。 任何想法?

1 个答案:

答案 0 :(得分:4)

sorted方法返回一个新的排序列表。它不会修改现有列表。另一方面,list.sort()方法就地对列表进行排序。

t = [('d',2), ('b', 1), (('a', 'c'), 2)]

要对此进行排序,请使用

t = sorted(t, key=lambda x: x[1], reverse=True)

t.sort(t, key=lambda x: x[1], reverse=True)