假设有两个列表:
['a', 'b', 'c'], ['d', 'e', 'f']
我想要的是:
'ad','ae','af','bd','be','bf','cd','ce','cf'
如果没有递归或列表理解,我怎样才能得到这个?我的意思是只使用循环,使用python?
答案 0 :(得分:3)
在遍历第一个数组中的元素时,您应该迭代第二个数组中的所有元素,并将组合结果推送到新列表中。
first_list = ['a', 'b', 'c']
second_list = ['d', 'e', 'f']
combined_list = []
for i in first_list:
for j in second_list:
combined_list.append(i + j)
print(combined_list)
答案 1 :(得分:3)
itertools
模块实现了很多类似循环的东西:
combined = []
for pair in itertools.product(['a', 'b', 'c'], ['d', 'e', 'f']):
combined.append(''.join(pair))
答案 2 :(得分:1)
这个概念被称为笛卡尔积,stdlib itertools.product
将为你构建一个 - 唯一的问题是它会给你像('a', 'd')
这样的元组而不是字符串,但你可以通过联接传递给你想要的结果:
from itertools import product
print(*map(''.join, product (['a','b,'c'],['d','e','f']))