将列表的每个元素与第二个列表的每个元素合并

2024-05-17 05:05:15 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我怎样才能得到

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

在一条线上?你知道吗


Tags: 列表ruenuk
1条回答
网友
1楼 · 发布于 2024-05-17 05:05:15

您可以使用^{}获得两个列表的笛卡尔积并将它们连接起来,如下所示

>>> 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']

相关问题 更多 >