首页 > 解决方案 > 如何连接两个列表的笛卡尔积中的字符串

问题描述

我有两个字符串列表:

letters = ['abc', 'def', 'ghi']
numbers = ['123', '456']

我想通过它们循环创建一个并行的字符串列表,所以zip()在这里不起作用。

期望的结果:

result = ['abc123', 'def123', 'ghi123', 'abc456', 'def456', 'ghi456']

结果中元素的顺序无关紧要。

有任何想法吗?

标签: pythonstringlistconcatenationcartesian-product

解决方案


您可以尝试使用两个嵌套的 for 循环然后进行列表理解numbersletters

print([l+n for n in numbers for l in letters])
# ['abc123', 'def123', 'ghi123', 'abc456', 'def456', 'ghi456']

您还可以使用嵌套的 for 循环

out = []
for n in numbers:
    for l in letters:
        out.append(l+n)
print(out)
# ['abc123', 'def123', 'ghi123', 'abc456', 'def456', 'ghi456']

有关列表理解的更多详细信息,请参阅文档或此相关主题


推荐阅读