Python Zip_longest Plus:遍历不同长度的列表

Python Zip_longest Plus:遍历不同长度的列表,python,list,iteration,itertools,combinatorics,Python,List,Iteration,Itertools,Combinatorics,我一直在通过不等长的列表进行迭代,像这样,但我找不到一个能够满足我确切需求的问题 我有两个长度不等的列表: list_1 = ["dog", "cat"] list_2 = ["girl", "boy", "man", "woman"] 如果我想遍历不同长度的列表,我可以使用itertools zip longest函数,如下所示 for pet, human in zip_

我一直在通过不等长的列表进行迭代,像这样,但我找不到一个能够满足我确切需求的问题

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

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

也就是说,在迭代中,我想将列表1的每个元素“组合”到列表2的每个元素。我该怎么办?

您要找的工具是:


您正在寻找的工具是:


@换言之,你在我回答的几秒钟内就关闭了它,这会使我不愿意在这里花更多的时间来帮助别人。Python主题有超过一百万个问题,因此您可能会争辩说,每个问题以前都被涉及过,StackOverflow应该成为一个静态FAQ。就我个人而言,我认为OP的问题有一些鲜明的特点,但这种想法永远不会战胜一小群咄咄逼人的问题解决者。所以,现在用户将无法听到itertools.product()的作者的消息。很抱歉,这个问题肯定是重复的。基本问题确实已经得到了回答,但是你和我都知道Python不是静态的,它周围的更大的生态系统也不是静态的。还有更多的问题。@RaymondHettinger,如果你想讨论post闭包之类的相对优点,请在这里给我一些意见以外的东西。这可不是个好地方:-/@RaymondHettinger听到这个消息我很难过!非常感谢您在SO上的时间和内容(甚至多次亲自帮助我)。但过多的重复回答对网站没有帮助,精力最好花在其他地方。如果你认为关闭是错误的,你可以投票重新打开,并解释为什么它有显著的不同-我的投票不是这件事的最终决定权。@wim换句话说,你在我回答的几秒钟内关闭了它,这会使我不太愿意在这里花更多的时间来帮助其他人。Python主题有超过一百万个问题,因此您可能会争辩说,每个问题以前都被涉及过,StackOverflow应该成为一个静态FAQ。就我个人而言,我认为OP的问题有一些鲜明的特点,但这种想法永远不会战胜一小群咄咄逼人的问题解决者。所以,现在用户将无法听到itertools.product()的作者的消息。很抱歉,这个问题肯定是重复的。基本问题确实已经得到了回答,但是你和我都知道Python不是静态的,它周围的更大的生态系统也不是静态的。还有更多的问题。@RaymondHettinger,如果你想讨论post闭包之类的相对优点,请在这里给我一些意见以外的东西。这可不是个好地方:-/@RaymondHettinger听到这个消息我很难过!非常感谢您在SO上的时间和内容(甚至多次亲自帮助我)。但过多的重复回答对网站没有帮助,精力最好花在其他地方。如果你认为关闭是错误的,你可以投票重新打开,并解释为什么它有显著的不同-我的投票不是这件事的最终决定权。
>>> 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