问题描述
我有以下输入:
input = (['AA','BB','CC','DD'],'4100314')
我想输出为 ('AA','4100314'),('BB',('CC',('DD','4100314')
解决方法
在您的具体示例中,这将起作用:
input1 = ['AA','BB','CC','DD']
input2 = '4100314'
def product(a,b):
return list(map(lambda x: [x,b],a))
print(product(input1,input2))
输出:
[['AA','4100314'],['BB',['CC',['DD','4100314']]
但我认为@Ani 的这个推荐要好得多:Get the cartesian product of a series of lists?
使用该方法的示例如下:
import itertools
input1 = ['AA','DD']
input2 = ['4100314']
def product(a,b):
out = []
for element in itertools.product(a,b):
out.append(element)
return out
print(product(input1,input2))
输出:
[('AA','4100314'),('BB',('CC',('DD','4100314')]
这里的主要区别在于,使用第二种方法,您可以输入任意两个数组,它会输出正确的结果,而第一种方法仅适用于数组和单个变量,就像您的用例一样。
>