排序列表的列表蟒蛇Python
问题描述:
我有一个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