python - 形成两个字符串列表的笛卡尔积的大多数 Pythonic 方法

标签 python string list concatenation cartesian-product

<分区>

我有两个字符串列表:

l1 = ["Col1", "Col2", "Col3"]
l2 = ["_ad1", "_ad2"]

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

["Col1_ad1", "Col1_ad2", "Col2_ad1", "Col2_ad2", "Col3_ad1", "Col1_ad1"]

当然我可以这样:

result = []
for colname in l1:
    for suffix in l2:
        result.append(f"{colname}{suffix}")

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

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

最佳答案

您可以使用 itertools.product

>>> from itertools import product
>>> l1 = ["Col1", "Col2", "Col3"]
>>> l2 = ["_ad1", "_ad2"]
>>> list(elem[0] + elem[1] for elem in product(l1, l2))
['Col1_ad1', 'Col1_ad2', 'Col2_ad1', 'Col2_ad2', 'Col3_ad1', 'Col3_ad2']

关于python - 形成两个字符串列表的笛卡尔积的大多数 Pythonic 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64801354/

相关文章:

java - 使用new创建字符串对象及其与intern方法的比较

python - 反转列表的顺序

python - 用于 Python 中批量复制的持久 WinSCP 连接

python - 如何跳过数组中的特定索引?

python - 两个数组之间的余弦距离计算 - Python

java - 双倍十进制字符串

python - 在 Python 中的空格上拆分字符串

r - 清理 R 中的列表列表

python - 将 JSON 对象添加到列表中

python - 如何使用 OpenCV2.0 和 Python2.6 调整图像大小