如何在Python中反转元组?

可能重复:
在Python中以相反顺序遍历一个列表

这可能吗? 不必到位,只是寻找一种方法来扭转元组,所以我可以反向迭代

3 Solutions collect form web for “如何在Python中反转元组?”

有两种惯用的方法来做到这一点:

 reversed(x) # returns an iterator 

要么

 x[::-1] # returns a new tuple 

由于元组是不可变的,因此无法在原地反转元组。


编辑:build立在@ lvc的评论上,通过reversed返回的迭代器将相当于

 def myreversed(seq): for i in range(len(x) - 1, -1, -1): yield seq[i] 

即它依赖于具有已知长度的序列来避免实际上反转元组。

至于哪一个更有效率,如果你使用了所有的元组,而且元组很小,并且在元组很大时reversed ,但是在python中的性能是经常的令人惊讶,所以衡量它!

您可以使用reversed内置函数。

 >>> x = (1, 2, 3, 4) >>> y = reversed(x) >>> tuple(y) (4, 3, 2, 1) 

如果你只是想迭代元组,你可以直接使用由reversed返回的迭代器,而不必再次将其转换为元组。

 >>> for k in reversed(x): ... print k, ... 4 3 2 1 

类似于你将会反转列表的方式,即s [:: – 1]

 In [20]: s = (1, 2, 3) In [21]: s[::-1] Out[21]: (3, 2, 1) 

 In [24]: for i in s[::-1]: ....: print i ....: 3 2 1 
  • 为什么浮点字典键可以用相同的值覆盖整数键?
  • types(obj)和obj .__ class__之间的区别
  • 如何缩进Python列表parsing?
  • Python functools.wraps等同于类
  • 面料密码
  • 如何总结字典元素
  • Python的打印方式:用“格式”还是百分比forms?
  • 在Mac OS X 10.9上使用pip安装Python图像库时出错
  • 你如何为PEP 8命名一个名字是缩写的类?
  • 如何在文本文件中searchstring?
  • 如何从Python中的string末尾删除子string?