【发布时间】:2021-02-24 07:21:53
【问题描述】:
我有两个字符串列表:
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) 产生所需的结果
【问题讨论】:
-
您可以使用列表理解,但由于复杂性相同,请坚持使用更容易理解的格式\debug
-
product()来自 itertools 包,为您提供了一个元组列表,每个列表中都有一个元素。您仍然需要遍历该列表以连接元组组件。没有比列表理解更好的方法了。
标签: python string list concatenation cartesian-product