是否有内置的python方法使用索引值而不是元素迭代列表

时间:2016-05-13 00:24:47

标签: python list

我正在寻找一个python方法,它使用索引值而不是实际元素本身迭代列表。代码就是这样:

sigh --help

我希望看看是否已经有一个功能可以执行此操作,或者我是否应该自己添加它。

2 个答案:

答案 0 :(得分:7)

使用enumerate

for index, ignore_this_its_the_value in enumerate(list):
   # do stuff

但实际上:

for index in range(len(list)):
   # do stuff

确实产生了正确的索引。

答案 1 :(得分:1)

for i in x:适用于任何可迭代的内容,例如列表或生成器。

range(r)xrange(r)只是一个数字列表(或此类列表的生成器)。 enumerate可以方便地从列表中生成计数器和值。您可以使用zip(range(len(alist)), alist)执行相同的操作。

for i, value in enumerate(alist):
    alist[i] = foo(value)
我认为,

是使用枚举的一个很好的例子。它提供了一种有效的阅读方式。价值观,以及修改它们的方式。

当然,如果您需要对迭代进行更多控制,则始终存在while循环。如果您需要继续或中断,或者您需要以不寻常的方式更改索引,它会特别有用。

生成器是打包迭代的另一个好工具。

就个人而言,我最喜欢列表理解(以及生成器和字典类似物)。它是控制和紧凑的完美结合。