我有一个嵌套列表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]]
3 回答

梦里花落0921
TA贡献1772条经验 获得超6个赞
做
sort_by_second_attribute = sorted(list_a, key = lambda k : (k[0], k[1]))
但理想情况下,不要将数据存储在列表中,而是为其创建适当的对象。因为从您的代码中完全不清楚 index=1 或 index=2 是什么意思,所以这些索引下存储了哪些数据。
添加回答
举报
0/150
提交
取消