猿问

在python中对嵌套列表进行排序

我有一个嵌套列表


list_a = 

[['1 order', 15, 3 ],

['1 order', 29, 2],

['1 order', 5, 1],

['2 order', 2, 3],

['2 order', 1, 2],

['2 order', 17, 1],

['3 order', 2, 3],

['3 order', 10, 2],

['3 order', 1, 1]]

对第二个元素应用排序后


sort_by_second_attribute = sorted(list_a, key = lambda k : k[1])

输出是


[['2 order', 1, 2],

['3 order', 1, 1],

['2 order', 2, 3],

['3 order', 2, 3],

['1 order', 5, 1],

['3 order', 10, 2],

['1 order', 15, 3],

['2 order', 17, 1],

['1 order', 29, 2]] 

但是,我想保持第一个属性的排序顺序,然后对第二个属性进行排序。我想要的输出是


[['1 order', 5, 3],

['1 order', 15, 2],

['1 order', 29, 1],

['2 order', 1, 3],

['2 order', 2, 2],

['2 order', 17, 1],

['3 order', 1, 3],

['3 order', 2, 2],

['3 order', 10, 1]] 


天涯尽头无女友
浏览 1019回答 3
3回答

梦里花落0921

做sort_by_second_attribute = sorted(list_a, key = lambda k : (k[0], k[1]))但理想情况下,不要将数据存储在列表中,而是为其创建适当的对象。因为从您的代码中完全不清楚 index=1 或 index=2 是什么意思,所以这些索引下存储了哪些数据。
随时随地看视频慕课网APP

相关分类

Python
我要回答