在Python中组合enumerate和itertools.izip
我想在Python中同时遍历两个列表,并且想给每个元素编号。下面的代码看起来不太好,有没有更好的方法呢?
for id, elements in enumerate(itertools.izip(as, bs)):
a = elements[0]
b = elements[1]
# do something with id, a and b
谢谢。
2 个回答
12
你可以用 itertools.count
来代替 enumerate
:
for id_, a, b in itertools.izip(itertools.count(), as_, bs):
# do something with id_, a and b
注意,我稍微改了一下变量的名字,以避免使用保留字和内置函数的名字。
18
你可以在for循环中同时给a和b赋值:
for id, (a, b) in enumerate(itertools.izip(as, bs)):
# do something with id, a and b