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
我一直在通过不等长的列表来解决迭代问题,就像这样
我有两个长度不等的列表:
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