在python中对多维数组排序

在python中对多维数组排序,python,Python,我的数据结构如下: [ ["id1", 123], ["id2", 1], ["id3", 6] ] 我想根据第二个变量对其进行排序,如下所示: [ ["id1", 123], ["id3", 6], ["id2", 1] ] 我可以写一个小函数来实现它,但我几乎可以肯定有一种很酷的单行程序方式,不是吗?谢谢。您可以使用sorted和itemgetter: >>> a = [ ["id1", 123], ["id2", 1], ["id3", 6] ] >>&g

我的数据结构如下:

[ ["id1", 123], ["id2", 1], ["id3", 6] ]
我想根据第二个变量对其进行排序,如下所示:

[ ["id1", 123], ["id3", 6], ["id2", 1] ]

我可以写一个小函数来实现它,但我几乎可以肯定有一种很酷的单行程序方式,不是吗?谢谢。

您可以使用
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
it:

>>> sorted(a, key=lambda L: L[1], reverse=True)

您可以使用排序的
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
it:

>>> sorted(a, key=lambda L: L[1], reverse=True)