Python:反转列表的顺序

12

可能是重复问题:
我如何在Python中翻转列表?

如何翻转一个列表的顺序: 例如,我有 lines.sort(key = itemgetter(2))

这是一个已排序的列表。如果我想要按照它原来的顺序,但是以相反的顺序排列呢?


在将某个东西标记为重复时,给出它所重复的链接是很有用的。这里是这种情况下的链接:https://dev59.com/l2865IYBdhLWcg3wLrlE - Linguist
2个回答

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

或者如果你只是想要反转这个列表

lines.reverse()

或者如果你想把这个列表复制到一个新的、反向的列表中

reversed(lines)

11
最后一个例子返回的是可迭代对象,而不是列表。你需要使用list(reversed(lines))将其转换回列表。但更容易的方法是使用负步长切片:lines[::-1] - Martijn Pieters
1
负步长的好处是它同样适用于其他类型:元组字符串... - mgilson

22

您是否想将列表排序(原地排序)使得最大的元素排在前面,最小的元素排在后面(最大和“最小”由您的keycmp函数决定)?如果是,请使用其他答案。(如果要进行非原地排序,请改用sorted)。

反转(非原地排序)任何列表的简单方法是使用切片:

reverse_lst = lst[::-1]

请注意,这也适用于其他序列对象(例如tuplestr


我认为“在排序时反转列表”这个声明有点不清楚。 - kaspersky
@gg.kaspersky -- 我已经编辑过了。这样好一些吗? - mgilson
我认为更好的说法是它适用于任何序列,因为 list 是 Python 中的具体数据类型。 - martineau
@martineau -- 添加了有关序列对象的文档链接。 - mgilson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接