我有一個Python列表中的列表列表。我需要根據最低級別中的一個值對最高級別的列表進行排序。排序列表的列表蟒蛇Python
對於玩具模型,用列表small
,這是包含將與每三個項目清單首次創建我的列表:
small = [["dog", 5, 6], ["cat", 391, 130], ["pig", 45, 2]...]`
然後有一個較大的列表,large
,即通過附加創建小單和其他項目一起:
large.append([["category 1"], small])`
這是在一個循環中完成,所以如果循環有5計數器,它會通過創建一個列表small
5次,每次一個函數出發,追加它對李st large
。
我的目標是根據最小列表中的元素(包含small
列表的列表)對最終列表進行排序。我目前正在逐行打印large
列表,其中small
列表按照index 1
的列表排列(請參閱:順序5,10,15,順序1,3,6等),所以我的輸出最小的
>category 1:
>['Dog', 5, 6]
>['Pig', 10, 2]
>['Cat', 15, 130]
>['Buffalo', 20, 1]
>['Newt', 25, 45]
>category 2:
>['Newt', 1, 1092]
>['Cat', 3, 352]
>['Pig', 6, 34]
>['Buffalo', 9, 12]
>['Dog', 12, 5]
>category 3:
>['Buffalo', 2, 12]
>['Pig', 4, 37]
>['Cat', 6, 34]
>['Newt', 8, 150]
>['Dog', 10, 52]
但是,我想打印順序large
列表index 1
中,構成了最小的數組列表中的元素看時,最大的:是這樣的。所以,我的理想輸出會是這樣:
>category 2:
>['Newt', 1, 1092]
>['Cat', 3, 352]
>['Pig', 6, 34]
>['Buffalo', 9, 12]
>['Dog', 12, 5]
>category 3:
>['Buffalo', 2, 12]
>['Pig', 4, 37]
>['Cat', 6, 34]
>['Newt', 8, 150]
>['Dog', 10, 52]
>category 1:
>['Dog', 5, 6]
>['Pig', 10, 2]
>['Cat', 15, 130]
>['Buffalo', 20, 1]
>['Newt', 25, 45]
我試圖與itemgetter()
排序,然而,與itemgetter()
排序large
的時候,我只能在列表large
的項目,這是[category x]
和[[a,b,c], [a,b,c]]
排序。有沒有辦法訪問itemgetter的最低級別的元素?或另一種方式去分揀這個清單?
謝謝。
先把它寫成一個正常的循環,然後看看如何使它更簡單或更高效。 –
嵌套索引? '大[i] [j] [1]' – f5r5e5d