你好我想弄清楚如何通過多個變量對嵌套列表進行排序,而有些不會按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中直接運行時效果很好。然而,當你把它放在一個程序裏面時,它似乎並沒有對列表進行排序。有任何想法嗎? – Daniel 2012-02-06 20:33:47
@Ophion:這段代碼只是輸出結果;它不會將其分配回「List」。將其更改爲'List = sorted(List,key = ...)'或使用'List.sort(key = ...)'。 – NPE 2012-02-06 20:39:37