Сортировка списка, который имеет кортеж как элемент с Python - PullRequest
2 голосов
/ 11 сентября 2010

У меня есть следующий список.

[(5,), (2,), (4,), (1,), (3,), (6,), (7,), (8,)]

Как мне отсортировать список, чтобы получить

[1,2,3,4,5,6,7,8]

или

[8,7,6,5,4,3,2,1]

Ответы [ 3 ]

4 голосов
/ 11 сентября 2010

Преобразовать список кортежей в список целых чисел, а затем отсортировать его:

thelist = [(5,), (2,), (4,), (1,), (3,), (6,), (7,), (8,)]

sortedlist = sorted([x[0] for x in thelist])

print sortedlist

Посмотреть его на codepad

1 голос
/ 11 сентября 2010

Я дам вам еще более обобщенный ответ:

from itertools import chain
sorted( chain.from_iterable( myList ) )

, который может сортировать не только то, что вы просили, но и любой список кортежей произвольной длины.

0 голосов
/ 11 сентября 2010
datalist = [(5,), (2,), (4,), (1,), (3,), (6,), (7,), (8,)]
sorteddata = sorted(data for listitem in datalist for data in listitem)
reversedsorted = sorteddata[::-1]
print sorteddata
print reversedsorted

# Also
print 'With zip', sorted(zip(*datalist)[0])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...