Python将一个列表中的元素与另一个中的所有元素组合在一起

时间:2016-12-16 19:14:12

标签: python string list list-comprehension

鉴于以下清单:

a = ['a','b']
b = [1,2,3,4]

我想制作这个:

c = ['a1','a2','a3','a4','b1','b2','b3','b4']

所以我基本上想把b的每个元素都加入到。

中的每个元素中

我喜欢类似的方法:

[x+str(y) for x in a and y in b]

提前致谢!

6 个答案:

答案 0 :(得分:5)

a = ['a','b']
b = [1,2,3,4]
c = [x+str(y) for x in a for y in b]
print(c)

答案 1 :(得分:3)

您需要在列表理解中迭代两次:

>>> a = ['a','b']
>>> b = [1,2,3,4]

>>> [i+str(j) for i in a for j in b]
['a1', 'a2', 'a3', 'a4', 'b1', 'b2', 'b3', 'b4']

答案 2 :(得分:1)

尝试此操作,将示例中的and替换为for以添加额外的循环:

[x + str(y) for x in a for y in b]

这将在单个list comprehension中循环显示两个列表。

答案 3 :(得分:0)

[str(a1) + str(b1) for a1 in a for b1 in b]

答案 4 :(得分:0)

您还可以将列表理解与组合生成混合使用。 Itertools模块是如何使用组合的好方法。

import itertools
c = [x + str(y) for x, y in itertools.product(a, b)]

答案 5 :(得分:0)

对于这个问题,我来得太晚了,但是这是我在python 3.6+上执行此操作的两分钱。

append=F