有一个不错的类Enum
,enum
但它只适用于字符串。我目前正在使用:
for index in range(len(objects)):
# do something with index and objects[index]
我猜这不是最佳解决方案,因为过早使用len
. 怎样才能更有效地做到这一点?
有一个不错的类Enum
,enum
但它只适用于字符串。我目前正在使用:
for index in range(len(objects)):
# do something with index and objects[index]
我猜这不是最佳解决方案,因为过早使用len
. 怎样才能更有效地做到这一点?
这是编写此循环的pythonic方法:
for index, obj in enumerate(objects):
# Use index, obj.
enumerate
无论其元素的类型如何,都适用于任何序列。它是一个内置函数。
编辑:
timeit
使用 Python 2.5运行一些测试后,我发现enumerate
速度稍慢:
>>> timeit.Timer('for i in xrange(len(seq)): x = i + seq[i]', 'seq = range(100)').timeit()
10.322299003601074
>>> timeit.Timer('for i, e in enumerate(seq): x = i + e', 'seq = range(100)').timeit()
11.850601196289062