2014-11-07 3 views
-4

Учитывая список:Python: Сортировка и списки печати в списках

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

1) Как напечатать список в алфавитном порядке и со 2-го числа в только в списке?

Желаемый результат:

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

2) Распечатать отсортированный список по 3-м номером высшего к низшему

Желаемый результат:

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

+5

SO это не бесплатный сервис написания кода. Все, кто задает вопросы здесь, должны продемонстрировать некоторые исследовательские усилия и/или попытаться решить проблему самостоятельно. Впоследствии мы будем более чем рады помочь вам в решении любых конкретных проблем. – iCodez

+1

Исправьте свои списки! 'TypeError: индексы списка должны быть целыми числами, а не tuple' – ThinkChaos

ответ

0

, так как вы просто хотите код это звучит как

from operator import itemgetter 
sorted(map(itemgetter(1,-1),lists),key=itemgetter(-1)) 

Heres некоторый код, который должен делать то, что вы хотите ... учитель может захотеть объяснение однако ... только справедливое предупреждение

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']] 
+0

@ jaron yep teacher понадобится объяснение – Hackaholic

+1

Кроме того, это неправильно, проверьте первый пост;) – ThinkChaos

+0

мой плохой извините, позвольте мне исправить, ах dident видел его – Hackaholic

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