在Python中结合enumerate + itertools.izip

Nik*_*hhi 3 python enumerate python-itertools

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

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

谢谢.

Pet*_*dge 15

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

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

  • 您可以相信 Python 有一个很好且简单的解决方案:)。 (2认同)

Mic*_*ber 11

您可以使用itertools.count而不是enumerate:

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

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