首页 > 解决方案 > 多次遍历三个列表,在每次迭代中从列表中依次选择一个元素

问题描述

我想遍历三个列表中的每一个,在每次迭代中从每个列表中依次选择一个元素。

subjects=["Americans","Indians"]
verbs=["plays","watch"]
objects=["Baseball","cricket"]
for i,j,k in zip(subjects,verbs,objects):
    print(i,j,k)

上面的代码给出的输出如下:

Americans plays Baseball

Indians watch cricket

但预期的输出是:

Americans play Baseball.

Americans play Cricket.

Americans watch Baseball.

Americans watch Cricket.

Indians play Baseball.

Indians play Cricket.

Indians watch Baseball.

Indians watch Cricket.

标签: pythonfor-loopiteratornested-loopsstring-interning

解决方案


用于itertools.product获取所有可能的组合,然后打印它们

>>> subjects=["Americans","Indians"]
>>> verbs=["plays","watch"]
>>> objects=["Baseball","cricket"]
>>> 
>>> from itertools import product
>>> for x in product(subjects,verbs,objects):
...     print('{} {} {}'.format(*x))
... 
Americans plays Baseball
Americans plays cricket
Americans watch Baseball
Americans watch cricket
Indians plays Baseball
Indians plays cricket
Indians watch Baseball
Indians watch cricket

推荐阅读