我正在阅读一些在线Python的东西,还有一些有趣的东西出现了.基本上它说不要这样做:
for i in range(len(mylist)):
print i, mylist[i]
Run Code Online (Sandbox Code Playgroud)
相反,它说这样做更好:
for (i, item) in enumerate(mylist):
print i, item
Run Code Online (Sandbox Code Playgroud)
通常我会选择第一个选项,但我没有看到这样做有任何潜在的风险.为什么第一个代码不好?与后者相比,第一代代码是否会对前面的代码行产生某种影响?
除了可读性因素之外,第二个片段适用于任何可迭代,而第一个片段仅适用于可以索引的对象(例如列表).例如,假设您使用的是集合:
>>> myset = {1,2,3}
>>>
>>> enumerate(myset) # works
<enumerate object at 0x2c9440>
>>>
>>> myset[0] # doesn't work
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'set' object does not support indexing
Run Code Online (Sandbox Code Playgroud)
这为代码增加了灵活性,如果您选择切换数据结构,可以让您的生活更轻松.
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |