Python 中循环列表的最佳方式是什么?

What is the best way in Python to loop over a list back to front?

现在我是这样做的:

for i in range(len(my_list)-1, -1, -1):
    # ...

但我想知道我们是否有更好的方法,意思更清楚。

使用 reversed() function:

for elem in reversed(my_list):

一个对象可以通过提供 __reversed__() special method; list objects implement this method to support reverse iteration efficiently. Otherwise, the normal sequence protocol (object.__getitem__() and object.__len__()) 来支持有效的反向迭代。

请注意,这不会创建新的列表对象;它产生一个迭代器,一个在你遍历它时跟踪列表中位置的对象。