【发布时间】:2013-02-19 12:33:47
【问题描述】:
我有一个像这样的数据结构:
[ ["id1", 123], ["id2", 1], ["id3", 6] ]
我想根据第二个变量(降序)对其进行排序,如下所示:
[ ["id1", 123], ["id3", 6], ["id2", 1] ]
我可以为此编写一个小函数,但我几乎可以肯定有一种很酷的单行方式可以做到这一点,不是吗?谢谢。
【问题讨论】:
标签: python
我有一个像这样的数据结构:
[ ["id1", 123], ["id2", 1], ["id3", 6] ]
我想根据第二个变量(降序)对其进行排序,如下所示:
[ ["id1", 123], ["id3", 6], ["id2", 1] ]
我可以为此编写一个小函数,但我几乎可以肯定有一种很酷的单行方式可以做到这一点,不是吗?谢谢。
【问题讨论】:
标签: python
您可以使用sorted 和itemgetter 来做到这一点:
>>> a = [ ["id1", 123], ["id2", 1], ["id3", 6] ]
>>> from operator import itemgetter
>>> sorted(a, key=itemgetter(1), reverse=True)
[['id1', 123], ['id3', 6], ['id2', 1]]
如果你纯粹想要一个单行(不导入),那么你可以lambda它:
>>> sorted(a, key=lambda L: L[1], reverse=True)
【讨论】: