将列表的每个元素与第二个列表的每个元素联系在一起 [英] Concat each element of list with each element of second list

查看:45
本文介绍了将列表的每个元素与第二个列表的每个元素联系在一起的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

我如何获得

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

一行吗?

推荐答案

您可以使用

You can use itertools.product to get the cartesian product of two lists and join them, like this

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

或者一行,具有列表理解力

Or in one line, with list comprehension

>>> ["{}{}".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']

这基本上与为第一个列表中的每个项目重复第二个列表并累加结果一样,

This is basically the same as iterating the second list for each item in the first list and accumulating the result, like this

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

这篇关于将列表的每个元素与第二个列表的每个元素联系在一起的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆