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

2024-06-02 05:05:30 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我想看看是否已经有一个函数,这样做,或者如果我应该添加自己。你知道吗


Tags: 方法函数代码in元素列表forindex
2条回答

for i in x:适用于任何iterable,如列表或生成器。你知道吗

range(r)xrange(r)只是一个数字列表(或此类列表的生成器)。enumerate是从列表中生成计数器和值的方便方法。你可以用zip(range(len(alist)), alist)做同样的事情。你知道吗

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

是使用枚举的一个很好的例子。它提供了一种“读取”值的有效方法,以及一种修改值的方法。你知道吗

当然,如果您需要对迭代进行更多的控制,那么总是有while循环。如果您需要继续或中断,或者需要以不寻常的方式更改索引,那么它特别有用。你知道吗

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

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

使用enumerate

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

但实际上:

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

是否生成适当的索引。你知道吗

相关问题 更多 >