Python:在列表中排序和打印列表

时间:2014-11-07 17:58:11

标签: python list sorting

给出一个清单:

lists = [[5, 8, 2, "Banana"][3, 6, 9, "Apple"][7, 9, 1, "Cherry"]]

1)如何按字母顺序打印列表并仅在列表中打印第二个数字?

期望的输出:

[6, "Apple"][8, "Banana"][9, "Cherry"]

2)按照从最高到最低的第3个数字打印排序列表

期望的输出:

[3, 6, 9, "Apple"] [5, 8, 2, "Banana"][7, 9, 1, "Cherry"]

3 个答案:

答案 0 :(得分:0)

因为你只想要代码听起来像

from operator import itemgetter
sorted(map(itemgetter(1,-1),lists),key=itemgetter(-1))
下面是一些应该做你想做的代码...老师可能想要一个解释但是......只是公平警告

答案 1 :(得分:0)

这里是:每个子列表都应该有逗号

 l = [[5, 8, 2, "Banana"],[3, 6, 9, "Apple"],[7, 9, 1, "Cherry"]]   
[ x[1::2]for x in sorted(l,key=lambda x : x[2]) ]

输出:

[[9, 'Cherry'], [8, 'Banana'], [6, 'Apple']]

然后使用key=reverse

进行排序 像这样:

sorted([ x[1::2] for x in sorted(l,key=lambda x : x[2]) ],key=lambda x:x[-1])

输出:

[[6, 'Apple'], [8, 'Banana'], [9, 'Cherry']]

答案 2 :(得分:0)

>>> sorted([[i[1], i[-1]] for i in lists], key=lambda x:x[1])
[[6, 'Apple'], [8, 'Banana'], [9, 'Cherry']]