【发布时间】:2012-02-06 17:52:55
【问题描述】:
您好,我想弄清楚如何按多个变量对嵌套列表进行排序,而有些变量不会按 1、2、3 排序,而是按预定列表排序。
例如:
List=[[XD,1],[XD,3],[XD,2],[X5,2],[X5,3],[XT,2]]
这将导致:
[[XD,1],[XD,2],[XD,3],[XT,2],[X5,2],[X5,3]]
第一个元素将按 sortbylist 排序,第二个元素仅按数字顺序排序。
SortByList={'XD': 'A', 'XT':'B', 'XQ': 'C','X5': 'D'}
我目前一直在尝试使用代码:
List.sort(key=SortByList.__getitem__ x: x[0])
List=sorted(List,key=itemgetter(1))
但这似乎不起作用。有什么提示吗?
最简单的方法之一是:
Result=sorted(List, key=lambda x:(SortByList[x[0]],x[1]))
【问题讨论】:
标签: python list sorting nested