在Python中,将列表从前到后循环的最佳方式是什么?
现在我是这样做的:在Python中,将列表从前到后循环的最佳方式是什么?,python,list,iteration,Python,List,Iteration,现在我是这样做的: for i in range(len(my_list)-1, -1, -1): # ... 但我想知道我们是否有更好的方法来表达更清晰的意思。使用: 对象可以通过提供;列表对象实现此方法以有效地支持反向迭代。否则,必须实现正常序列协议(and) 请注意,这不会创建新的列表对象;它生成一个迭代器,一个在列表上循环时跟踪列表中位置的对象。使用: 对象可以通过提供;列表对象实现此方法以有效地支持反向迭代。否则,必须实现正常序列协议(and) 请注意,这不会创建新的列表对象
for i in range(len(my_list)-1, -1, -1):
# ...
但我想知道我们是否有更好的方法来表达更清晰的意思。使用:
对象可以通过提供;列表对象实现此方法以有效地支持反向迭代。否则,必须实现正常序列协议(and)
请注意,这不会创建新的列表对象;它生成一个迭代器,一个在列表上循环时跟踪列表中位置的对象。使用:
对象可以通过提供;列表对象实现此方法以有效地支持反向迭代。否则,必须实现正常序列协议(and)
请注意,这不会创建新的列表对象;它生成一个迭代器,一个对象,当你在列表上循环时跟踪列表中的位置。
对于我在我的列表中的i[::-1]
也可以工作,但这将创建一个新的列表list@PadraicCunningham:如果没有找到\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
方法,它存储pos=len(object)
,每次您在其上调用next()
,它都将递减pos
,并访问object[pos]
。如果pos
为0,则引发StopIteration
。如果\uuuuu reversed\uuuuuuu
可用,则返回该方法的结果,其中该对象必须是迭代器。因此,在内部,它基本上是一个从len(l)-1
开始的循环?@padraickenningham:请参阅;也许.谢谢,这就是我要找的。@PadraicCunningham:是的,但因为它是一个迭代器,所有这些都用C代码处理,专家对象可以返回专家反向迭代器。例如,@PadraicCunningham:如果找不到\uuuu reversed\uuuu
方法,它将存储pos=len(object)
,每次调用next()
,它都将递减pos
并访问object[pos]
。如果pos
为0,则引发StopIteration
。如果\uuuuu reversed\uuuuuuu
可用,则返回该方法的结果,其中该对象必须是迭代器。因此,在内部,它基本上是一个从len(l)-1
开始的循环?@padraickenningham:请参阅;也许.谢谢,这就是我要找的。@PadraicCunningham:是的,但因为它是一个迭代器,所有这些都用C代码处理,专家对象可以返回专家反向迭代器。例如,美国。
for elem in reversed(my_list):