Python - 多次使用两个压缩列表

Python - Use two zipped lists multiple times

我有以下 zip:a = zip(list_a, list_b)。 我一直认为一旦压缩 a,它就会保持压缩状态。这样以下内容将起作用:

for iteration in range(100):
   for i, j in a:
      # do something

但我注意到在第二次迭代时 a 是空的。首先,我对 zip 的理解是否正确,其次,是否有适合这种情况的简单单行替代方案?

zip returns 一个迭代器;它每对生成一次,然后就完成了。所以解决方案通常是在循环中内联 zip 以便每次都重新创建它:

for iteration in range(100):
   for i, j in zip(list_a, list_b):
      # do something

或者如果由于某种原因这不起作用,只需 list- 预先验证 zip 迭代器,使其可重用:

a = list(zip(list_a, list_b))

然后使用您原来的循环代码。