2012-11-23 211 views
4

可能重複:
How can I reverse a list in python?的Python:反向順序列表

如何扭轉列表的順序: 如。我有lines.sort(key = itemgetter(2))

這是一個排序列表。如果我完全按照它的順序需要這個列表,但是以相反的順序呢?

+0

將某些內容標記爲重複項時,提供指向它的副本的鏈接很有用。這裏是這個案例的鏈接:http://stackoverflow.com/questions/3940128/how-can-i-reverse-a-list-in-python – Linguist

回答

17
lines.sort(key=itemgetter(2), reverse=True) 

,或者如果你只是想扭轉名單

lines.reverse() 

,或者如果你想將列表複製到一個新的,顛倒列表

reversed(lines) 
+9

最後一個例子返回一個迭代,而不是一個列表。你必須使用'list(反向(行))'來再次成爲一個列表。使用負跨度切片更容易:'lines [:: - 1]'。 –

+1

負面進展的好處是,它也適用於其他類型:'tuple','str' ... – mgilson

19

你想對列表進行排序(到位),使最大的元素是第一個元素,最小的元素是最後一個元素(最大和最小值由您的keycmp函數決定)?如果是這樣,請使用其他答案。 (如果你想排序的話,改用sorted)。

一個簡單的方法來顛倒順序(出來的地方)的任何列表是通過切片:

reverse_lst = lst[::-1] 

注意這與其他sequence objects以及(tuplestr立刻浮現在腦海中)

+0

我認爲聲明「排序時顛倒列表」有點不清楚。 – kaspersky

+0

@ gg.kaspersky - 我編輯過。這是否更好? – mgilson

+0

我認爲最好說它適用於_any sequence_,因爲'list'是Python中的具體數據類型。 – martineau