python - 将列表的每个元素与第二个列表的每个元素连接起来

标签 python list python-2.7

我有两个列表['_ru', '_uk', '_en'], ['1','2','3']

如何获得

['1_ru', '1_uk', '1_en', '2_ru', '2_uk', '2_en', '3_ru', '3_uk', '3_en']

在一行中?

最佳答案

您可以使用itertools.product获取两个列表的笛卡尔积并将它们连接起来,如下所示

>>> l2, l1 = ['_ru', '_uk', '_en'], ['1','2','3']
>>> from itertools import product
>>> ["".join(items) for items in product(l1, l2)]
['1_ru', '1_uk', '1_en', '2_ru', '2_uk', '2_en', '3_ru', '3_uk', '3_en']

或者在一行中,使用列表理解

>>> ["{}{}".format(i1, i2) for i1 in l1 for i2 in l2]
['1_ru', '1_uk', '1_en', '2_ru', '2_uk', '2_en', '3_ru', '3_uk', '3_en']

这与为第一个列表中的每个项目迭代第二个列表并累加结果基本相同,如下所示

>>> result = []
>>> for i1 in l1:
...     for i2 in l2:
...         result.append("{}{}".format(i1, i2))
>>> result
['1_ru', '1_uk', '1_en', '2_ru', '2_uk', '2_en', '3_ru', '3_uk', '3_en']

关于python - 将列表的每个元素与第二个列表的每个元素连接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30627804/

相关文章:

python - “机器人未被识别为内部或外部命令”

r - 以交互方式处理占用大量内存的列表对象

python - 区分字典和字典列表的 pythonic 方法是什么?

python-2.7 - 如何在 Python 中将文件从本地机器传输到 EC 实例?

python - 在脚本结束时从 Python 3.5 切换到 2.7?

python - 将 DataFrame 转换为字典

python - PyCharm:在 Python 控制台中执行

python - 基于 Pandas 中的管道分隔列创建多个新列

json - 包含一个元素的 jaxb 列表

python - 如何将经度、纬度、高程转换为直角坐标?