Python 根据第0个索引处的项对二维嵌套列表排序

Python 根据第0个索引处的项对二维嵌套列表排序,python,Python,我有一个2D列表,如下所示: [['0', '1', '16', '35'], ['3', '41', '80', '58'], ['2', '14', '84', '90'], ['1', '14', '108', '113'], ['8', '129', '147', '38']] 我想根据每个元素的第1列(第0个索引)对该2D列表进行排序,如下所示: [['0', '1', '16', '35'],['1', '14', '108', '113'],['2', '14', '84', '

我有一个2D列表,如下所示:

[['0', '1', '16', '35'], ['3', '41', '80', '58'], ['2', '14', '84', '90'], ['1', '14', '108', '113'], ['8', '129', '147', '38']]
我想根据每个元素的第1列(第0个索引)对该2D列表进行排序,如下所示:

[['0', '1', '16', '35'],['1', '14', '108', '113'],['2', '14', '84', '90'],
['3', '41', '80', '58'],['8', '129', '147', '38']]

您可以使用
sorted
功能

a = [['0', '1', '16', '35'], ['3', '41', '80', '58'], ['2', '14', '84', '90'], ['1', '14', '108', '113'], ['8', '129', '147', '38']]

print(sorted(a, key=lambda x : x[0]))
输出(根据需要):

您可以使用带有
键的函数
作为函数来获取要根据其执行排序的值。例如,要根据第0个索引处的项按字典顺序进行排序,请将键作为
lambda x:x[0]

>>> my_list = [['0', '1', '16', '35'], ['3', '41', '80', '58'], ['2', '14', '84', 

>>> sorted(my_list, key=lambda x: x[0])
[['0', '1', '16', '35'], ['1', '14', '108', '113'], ['2', '14', '84', '90'], ['3', '41', '80', '58'], ['8', '129', '147', '38']]
>>> sorted(my_list, key=lambda x: int(x[0]))
[['0', '1', '16', '35'], ['1', '14', '108', '113'], ['2', '14', '84', '90'], ['3', '41', '80', '58'], ['8', '129', '147', '38']]
但是,如果需要数字排序,请键入cast key to
int
。因此,您的密钥需要是
lambda x:int(x[0])


使用排序后的

from operator import itemgetter
l = [['0', '1', '16', '35'], ['3', '41', '80', '58'], ['2', '14', '84', '90'], ['1', '14', '108', '113'], ['8', '129', '147', '38']]
print(sorted(l, key=int(itemgetter(0))))

更多信息请点击此处: 但是下一次,请在提问之前先做一下自己的研究,我通过谷歌搜索你的标题+“python”

找到了多个答案,你可以使用
sorted()和lambda

li=[[1, 0.23],
 [2, 0.39],
 [4, 0.31],
[5, 0.27]]

sorted(li,key=lambda l:l[0], reverse=False)
输出

[[1, 0.23], [2, 0.39], [4, 0.31], [5, 0.27]]

也许,这个问题离题了。
li.sort(key=lambda row: int(row[0]))
li=[[1, 0.23],
 [2, 0.39],
 [4, 0.31],
[5, 0.27]]

sorted(li,key=lambda l:l[0], reverse=False)
[[1, 0.23], [2, 0.39], [4, 0.31], [5, 0.27]]