如何在Python中反向迭代列表?


请参见:如何获得列表的反向副本(避免在.reverse后链接方法时使用单独的语句)?


当前回答

另一个解决方案是使用numpy。翻一下

import numpy as np
array = [0, 10, 20, 40]
list(np.flip(array))
[40, 20, 10, 0]

其他回答

你也可以使用数组索引的逐位补码反向遍历数组:

>>> array = [0, 10, 20, 40]
>>> [array[~i] for i, _ in enumerate(array)]
[40, 20, 10, 0]

不管你做什么,不要这样做;)

将你的需求转换成Python的最直接的方法是这样的for语句:

for i in xrange(len(array) - 1, -1, -1):
   print i, array[i]

这是相当神秘的,但可能有用。

使用列表。Reverse将列表就地反转:

>>> xs = [0, 10, 20, 40]
>>> xs.reverse()
>>> xs
[40, 20, 10, 0]

使用切片以相反的顺序创建一个新列表:

>>> xs[::-1]
[40, 20, 10, 0]

一行代码中用户输入值的反向:

for i in input()[::-1]: print(i,end='')
def reverse(text):
    output = []
    for i in range(len(text)-1, -1, -1):
        output.append(text[i])
    return output