Lar*_*gas 28 python enumerate range
如果我只想在循环中使用索引,我应该更好地range/xrange结合使用该函数len()
a = [1,2,3]
for i in xrange(len(a)):
print i
Run Code Online (Sandbox Code Playgroud)
还是enumerate?即使我根本不使用p?
for i,p in enumerate(a):
print i
Run Code Online (Sandbox Code Playgroud)
Jon*_*nts 18
我会使用enumerate它,因为它更通用 - 例如它将适用于iterables和序列,并且仅返回对象的引用的开销并不是那么大 - xrange(len(something))尽管(对我来说)更容易阅读,因为你的意图 - 将打破对象,不支持len......
Ros*_*nko 14
使用带有len的xrange是一个很常见的用例,所以是的,如果你只需要按索引访问值,就可以使用它.
但是如果你因为某种原因喜欢使用枚举,你可以使用下划线(_),它只是一个经常看到的符号,表明你不会以某种有意义的方式使用变量:
for i, _ in enumerate(a):
print i
Run Code Online (Sandbox Code Playgroud)
使用下划线(_)也可能发生陷阱.在i18n库和系统中将'翻译'函数命名为_也很常见,因此请注意将其与gettext或其他类似的库(对@lazyr)一起使用.