Python 如何使用递归将两个列表合并成一个元组列表?

Python 如何使用递归将两个列表合并成一个元组列表?,python,recursion,Python,Recursion,我知道这不必通过递归来实现。我想组合两个列表,例如x=[0,1]和y=['a','b','c'],并创建一个函数,将它们放入元组列表中,例如:[(0,'a'),(0,'b'),(0,'c'),(1,'a'),(1,'b'),(1,'c')] 我只知道如何对列表x的第一个索引执行此操作,并且正在努力找出如何继续执行进一步的索引。下面函数的输出是:[(0,'a'),(0,'b'),(0,'c')] def联合收割机(x,y,idx=0): 如果idx

我知道这不必通过递归来实现。我想组合两个列表,例如
x=[0,1]
y=['a','b','c']
,并创建一个函数,将它们放入元组列表中,例如:
[(0,'a'),(0,'b'),(0,'c'),(1,'a'),(1,'b'),(1,'c')]

我只知道如何对列表x的第一个索引执行此操作,并且正在努力找出如何继续执行进一步的索引。下面函数的输出是:
[(0,'a'),(0,'b'),(0,'c')]

def联合收割机(x,y,idx=0):
如果idx
我不知道如何让列表x移动到进一步的索引。我想我可能需要调用所有对(list1、list2、index+1),而不是对列表进行切片。我需要函数本身调用两次吗?这可能看起来很简单,但无论出于什么原因,我都无法理解。

您可以按以下方法执行

from itertools import product
a = list(product(x,y))
a
或者只列出下面的理解

[(a,b) for a in x for b in y]
输出

[(0, 'a'), (0, 'b'), (0, 'c'), (1, 'a'), (1, 'b'), (1, 'c')]

这回答了你的问题吗?@kaya3 OP特别要求一个递归解决方案,而这个问题的答案都没有。@Nick OP特别说“我知道这不必通过递归来实现”,这在我看来似乎与“必须通过递归来实现”相反.@kaya3问题标题要求递归解决方案;正文只给出了这样一个信息,即OP理解可以使用递归以外的方法解决问题。@Nick我明白你的意思。还有其他问题需要递归回答,例如和,尽管这些问题并不特定于两个列表的情况。
[(0, 'a'), (0, 'b'), (0, 'c'), (1, 'a'), (1, 'b'), (1, 'c')]