只需要索引:枚举或(x)范围?
如果我只想在循环中使用索引,我应该更好地将range/xrange
函数与len()
结合使用
a = [1,2,3]
for i in xrange(len(a)):
print i
或enumerate
? 即使我根本不使用p
?
for i,p in enumerate(a):
print i
我会使用enumerate
因为它更通用 - 例如它可以在迭代和序列上工作,而仅仅返回对象引用的开销并不是什么大不了的事 - 虽然xrange(len(something))
虽然(对我来说)按照您的意图更容易读取 - 将不支持len
对象打破...
这是一个罕见的要求 - 从容器中使用的唯一信息是它的长度! 在这种情况下,我确实将这个事实明确并使用第一个版本。
在len中使用xrange是一种常见的用例,所以是的,如果您只需要按索引访问值,则可以使用它。
但是如果你更喜欢使用枚举出于某种原因,你可以使用下划线(_),这只是一个经常看到的符号,表明你不会以某种有意义的方式使用变量:
for i, _ in enumerate(a):
print i
还有一个使用下划线(_)可能发生的陷阱。 在i18n库和系统中将'翻译'功能命名为_也是常见的,因此请注意将它与gettext或其他类似的库(thnks to @lazyr)一起使用。
链接地址: http://www.djcxy.com/p/23995.html