如何将列表的每个元素组合到另一个列表?

时间:2017-03-03 04:06:43

标签: python loops

假设有两个列表:

['a', 'b', 'c'], ['d', 'e', 'f']

我想要的是:

'ad','ae','af','bd','be','bf','cd','ce','cf'

如果没有递归或列表理解,我怎样才能得到这个?我的意思是只使用循环,使用python?

3 个答案:

答案 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']))