0

我对 Python 很陌生,并且正在使用现有的代码库。

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

for i in range(len(my_list)):
    item = my_list[i]
    # process item

是否有充分的理由不应该将其简化为:

for item in my_list:
    # process item

for除了取消引用列表项本身之外,我不需要循环中项目的索引。那么后者是否存在我没​​有看到的问题?

4

1 回答 1

4

有充分的理由将其简化为第二种形式;它是首选的 Pythonic 方法;但只需foo直接使用:

for foo in my_list:
    # process item

如果还需要索引请使用enumerate()

for i, foo in enumerate(my_list):
    # process item

在列表中创建for循环通常表明有人从没有构造的语言(如 C)迁移到 Python,而且他们还没有习惯 Python循环的真正工作方式。range()len()for eachfor

于 2013-07-11T11:17:46.157 回答