from itertools import product
x = "a1,a2,a3"
y = "b1,b2,b3"
print([fst + snd for fst, snd in product(x.split(","), y.split(","))])
# ['a1b1', 'a1b2', 'a1b3', 'a2b1', 'a2b2', 'a2b3', 'a3b1', 'a3b2', 'a3b3']
您也可以在列表理解中执行此操作,以获得相同的结果:
print([fst + snd for fst in x.split(",") for snd in y.split(",")])
# ['a1b1', 'a1b2', 'a1b3', 'a2b1', 'a2b2', 'a2b3', 'a3b1', 'a3b2', 'a3b3']
或者使用与原始方法类似的解决方案:
z = []
for fst in x.split(","):
for snd in y.split(","):
z.append(fst + snd)
print(z)
# ['a1b1', 'a1b2', 'a1b3', 'a2b1', 'a2b2', 'a2b3', 'a3b1', 'a3b2', 'a3b3']
您需要^{} 拆分} 获得两个列表的笛卡尔乘积:
","
上的字符串,然后可以使用^{您也可以在列表理解中执行此操作,以获得相同的结果:
或者使用与原始方法类似的解决方案:
您可以在
product
上使用starmap
和add
操作符来进行该操作这就是你要找的
相关问题 更多 >
编程相关推荐