如何从两个列表的笛卡尔积连接字符串

cur*_*own 1 python string list concatenation cartesian-product

我有两个字符串列表:

letters = ['abc', 'def', 'ghi']
numbers = ['123', '456']
Run Code Online (Sandbox Code Playgroud)

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

期望的结果:

result = ['abc123', 'def123', 'ghi123', 'abc456', 'def456', 'ghi456']
Run Code Online (Sandbox Code Playgroud)

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

有任何想法吗?

Ale*_* B. 10

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

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

您还可以使用嵌套 for 循环

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

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