Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 迭代列表的方法_Python_List_Iteration - Fatal编程技术网

Python 迭代列表的方法

Python 迭代列表的方法,python,list,iteration,Python,List,Iteration,我对Python非常陌生,正在使用现有的代码库 我在代码中看到了这种模式: for i in range(len(my_list)): item = my_list[i] # process item 是否有充分的理由不应将其简化为: for item in my_list: # process item 我不需要for循环中的项的索引,只需要取消对列表项本身的引用。那么,我没有看到后者有什么问题吗?有充分的理由将其简化为第二种形式;这是首选的肾盂法;但是直接使用fo

我对Python非常陌生,正在使用现有的代码库

我在代码中看到了这种模式:

for i in range(len(my_list)):
    item = my_list[i]
    # process item
是否有充分的理由不应将其简化为:

for item in my_list:
    # process item

我不需要
for
循环中的
项的索引,只需要取消对列表项本身的引用。那么,我没有看到后者有什么问题吗?

有充分的理由将其简化为第二种形式;这是首选的肾盂法;但是直接使用
foo

for foo in my_list:
    # process item
如果还需要索引,请使用
enumerate()


在列表的
len()
range()
上为
创建一个
循环通常是某人从一种没有为每个
构造创建
的语言迁移到Python的标志,比如C,而且他们还没有习惯Python
for
循环如何真正工作。

有充分的理由将其简化为第二种形式;这是首选的肾盂法;但是直接使用
foo

for foo in my_list:
    # process item
如果还需要索引,请使用
enumerate()


在列表的
len()
range()
上为
创建一个
for
循环通常是一种迹象,表明有人从一种没有为每个
构造创建
的语言迁移到Python,比如C,他们还没有习惯Python
for
循环的实际工作方式。

他们都是一样的,但我不明白你为什么要这么做
foo
将始终是最后一个元素。后者是cleaner@Haidro我想我们可以假设循环体中还有一些代码。@Haidro,delnan是正确的。我会在问题中说得更清楚。它们都是一样的,但我不明白你为什么要这样做
foo
将始终是最后一个元素。后者是cleaner@Haidro我想我们可以假设循环体中还有一些代码。@Haidro,delnan是正确的。我会在问题中说得更清楚。我能想到的唯一原因(除了不知道
for blah in
是可用的之外)是修改列表需要循环,但显然这取决于您的
枚举
示例;)@JonClements:索引仍然会被关闭1,在这种情况下,你必须使用
循环。@JonClements:对不起,我假设你所说的修改是指通常的“如果我删除元素,事情就不起作用”循环问题。我能想到的唯一原因是(除了不知道
for blah in
是可用的),是否需要循环来修改列表,但显然这取决于您的
enumerate
example;)@JonClements:索引仍然会被关闭1,在这种情况下,您必须使用
while
循环。@JonClements:对不起,我假设您所说的修改是指通常的“如果我删除元素,事情就不起作用”循环问题。