Zip_longest 加:遍历不同长度的列表

Zip_longest Plus: Iterating through lists of Different Lengths

我一直在通过不等长的列表来解决迭代问题,就像这样 ,但我一直无法找到满足我确切要求的问题。

我有两个长度不等的列表:

list_1 = ["dog", "cat"]
list_2 = ["girl", "boy", "man", "woman"]

如果我想遍历不同长度的列表,我可以使用 itertools zip-longest 函数如下

for pet, human in zip_longest(list_1, list_2):
    print(pet, human)

我得到的输出如下:

dog girl
cat boy
None man
None woman

问题:如果我想让迭代器输出如下内容,我会怎么做:

dog girl
dog boy
dog man
dog woman
cat girl
cat boy
cat man
cat woman

也就是说,在迭代中,我想将 list_1 的每个元素“组合”到 list_2 的每个元素。我会怎么做?

您要找的工具是itertools.product():

>>> from itertools import product
>>> list_1 = ["dog", "cat"]
>>> list_2 = ["girl", "boy", "man", "woman"]
>>> for pet, human in product(list_1, list_2):
        print(pet, human)
        
dog girl
dog boy
dog man
dog woman
cat girl
cat boy
cat man
cat woman