形成两个字符串列表的笛卡尔积的最 Pythonic 方法

bk_*_*bk_ 2 python string list concatenation cartesian-product

我有两个字符串列表:

l1 = ["Col1", "Col2", "Col3"]
l2 = ["_ad1", "_ad2"]
Run Code Online (Sandbox Code Playgroud)

我想将两个列表l1x的笛卡尔积/串联l2成一个元素,即我想要的结果是:

["Col1_ad1", "Col1_ad2", "Col2_ad1", "Col2_ad2", "Col3_ad1", "Col1_ad1"]
Run Code Online (Sandbox Code Playgroud)

当然我可以这样做:

result = []
for colname in l1:
    for suffix in l2:
        result.append(f"{colname}{suffix}")
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有更Pythonic的方式?

编辑:我并不是在寻找一种更Pythonic的方式来制定循环(即列表理解)。相反,我正在寻找一个内置函数,类似的函数 concatenate(l1, l2)会产生所需的结果

ale*_*ame 5

您可以使用列表理解:

print([f"{a}{b}" for a in l1 for b in l2])
Run Code Online (Sandbox Code Playgroud)