如何在 Python 中反转元组?
问题描述
可能重复:
在Python中逆序遍历列表
这可能吗?不必就位,只需寻找一种反转元组的方法,以便我可以反向迭代它.
Is this possible? Doesn't have to be in place, just looking for a way to reverse a tuple so I can iterate on it backwards.
解决方案
有两种惯用的方法:
reversed(x) # returns an iterator
或
x[::-1] # returns a new tuple
由于元组是不可变的,因此无法就地反转元组.
Since tuples are immutable, there is no way to reverse a tuple in-place.
基于@lvc 的注释,由 reversed
返回的迭代器将等效于
Building on @lvc's comment, the iterator returned by reversed
would be equivalent to
def myreversed(seq):
for i in range(len(x) - 1, -1, -1):
yield seq[i]
即它依赖于具有已知长度的序列来避免必须实际反转元组.
i.e. it relies on the sequence having a known length to avoid having to actually reverse the tuple.
至于哪个更有效,我怀疑它会是 seq[::-1]
如果你正在使用它并且元组很小,并且 当元组很大时反转
,但是python中的性能常常令人惊讶,所以测量一下!
As to which is more efficient, i'd suspect it'd be the seq[::-1]
if you are using all of it and the tuple is small, and reversed
when the tuple is large, but performance in python is often surprising so measure it!
相关文章