迭代列表的方法

时间:2013-07-11 11:12:11

标签: 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循环中项目的索引,除了取消引用列表项本身。那么后者有问题我没看到吗?

1 个答案:

答案 0 :(得分:4)

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

for foo in my_list:
    # process item

如果还需要 ,请使用enumerate()

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

在列表for的{​​{1}}上创建range()循环通常表示有人从没有len()结构的语言转移到Python,例如C ,他们还没有习惯Python for each循环如何工作。