我对Python很陌生,正在研究现有的代码库。
我在代码中看到了这种模式:
for i in range(len(my_list)):
item = my_list[i]
# process item
是否有充分理由不应将其简化为:
for item in my_list:
# process item
我不需要for
循环中项目的索引,除了取消引用列表项本身。那么后者有问题我没看到吗?
答案 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
循环如何工作。