【发布时间】:2012-11-23 13:13:22
【问题描述】:
当同时循环多个 python 列表时,我使用zip-函数,我还想检索循环索引。为此,可以在 zip 函数中包含一个单独的循环索引列表,例如:
for index, item1, item2 in zip(range(len(list1)), list1, list2):
<do something>
有没有更好的方法来做到这一点(比如enumerate-function)?
【问题讨论】:
当同时循环多个 python 列表时,我使用zip-函数,我还想检索循环索引。为此,可以在 zip 函数中包含一个单独的循环索引列表,例如:
for index, item1, item2 in zip(range(len(list1)), list1, list2):
<do something>
有没有更好的方法来做到这一点(比如enumerate-function)?
【问题讨论】:
你可以解压for中的所有东西:
>>> for i, (x1, x2) in enumerate(zip([1,2,3], [3,4,5])):
... print i, x1, x2
...
0 1 3
1 2 4
2 3 5
【讨论】:
enumerate 和 zip 实际上可以组合来实现这个!
您可以为此使用enumerate()(注意在for 之后放置括号以解压缩嵌套元组):
>>> l1 = range(0, 10)
>>> l2 = range(10, 20)
>>> for index, (item1, item2) in enumerate(zip(l1, l2)):
... print index, item1, item2
...
0 0 10
1 1 11
2 2 12
3 3 13
4 4 14
5 5 15
6 6 16
7 7 17
8 8 18
9 9 19
【讨论】: