5
從enum
有一個很好的類Enum
,但它只適用於字符串。我目前使用:如何枚舉Python中的非字符串對象列表?
for index in range(len(objects)):
# do something with index and objects[index]
我想這不是最佳的解決方案,由於過早使用len
。如何更有效地做到這一點?
從enum
有一個很好的類Enum
,但它只適用於字符串。我目前使用:如何枚舉Python中的非字符串對象列表?
for index in range(len(objects)):
# do something with index and objects[index]
我想這不是最佳的解決方案,由於過早使用len
。如何更有效地做到這一點?
下面是寫這個循環的Python的方式:在任何序列
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
是不是更有效? – 2009-06-07 15:52:35