在Python中结合enumerate + itertools.izip

时间:2011-08-18 12:22:03

标签: python itertools enumerate

我想迭代+枚举Python中的两个列表。以下代码看起来很丑陋。有没有更好的解决方案?

for id, elements in enumerate(itertools.izip(as, bs)):
  a = elements[0]
  b = elements[1]
  # do something with id, a and b

谢谢。

2 个答案:

答案 0 :(得分:15)

您可以在for循环期间指定a和b:

for id, (a, b) in enumerate(itertools.izip(as, bs)):
  # do something with id, a and b

答案 1 :(得分:11)

您可以使用itertools.count代替enumerate

for id_, a, b in itertools.izip(itertools.count(), as_, bs):
  # do something with id_, a and b

请注意,我稍微更改了变量名称,以避免使用保留字和内置名称。