我有一個列表如下。用Python將元組作爲元素的排序列表
[(5,), (2,), (4,), (1,), (3,), (6,), (7,), (8,)]
我如何排序列表以獲得
[1,2,3,4,5,6,7,8]
或
[8,7,6,5,4,3,2,1]
?
我有一個列表如下。用Python將元組作爲元素的排序列表
[(5,), (2,), (4,), (1,), (3,), (6,), (7,), (8,)]
我如何排序列表以獲得
[1,2,3,4,5,6,7,8]
或
[8,7,6,5,4,3,2,1]
?
轉換的元組列表轉換成整數的列表,然後對其進行排序:
thelist = [(5,), (2,), (4,), (1,), (3,), (6,), (7,), (8,)]
sortedlist = sorted([x[0] for x in thelist])
print sortedlist
見它codepad
我給你一個更廣義的答案:
from itertools import chain
sorted(chain.from_iterable(myList))
它不僅可以對您要求的內容進行排序,而且還可以對任意長度的元組進行排序。
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])
爲什麼不僅僅是'sorted([x [0] for x in list])'?排序是一個保留字,所以最好不要用作變量。 – 2010-09-11 04:56:55
@Justine Peel:這不是一個保留字,它只是一個函數的名字,但這個觀點依然存在。 – 2010-09-11 04:57:24
他還要求反向:'sorted([x [0] for x in list],reverse = True)'。另外,「列表」是內建的。 +1儘管如此 – sdolan 2010-09-11 05:05:37