Python将一个列表中的元素与另一个列表中的所有元素合并为一个列表

3

给定以下列表:

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

我想制作这个:
c = ['a1','a2','a3','a4','b1','b2','b3','b4']

我希望能将b中的每个元素与a中的每个元素进行组合。

我的想法是采用类似以下的方法:

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

提前感谢您!


“c = [x+str(y) for x in a and y in b]”是您在问题中提供的解决方案,您实际上想要问什么? - Tadhg McDonald-Jensen
6个回答

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

1
将以下与编程相关的内容从英文翻译为中文。仅返回翻译后的文本: - elethan
同上,@elethan的评论 :P - Moinuddin Quadri

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

哈哈,看起来你是赢家 ;) - elethan
1
@HillaryClintonEmailRemover 顺便说一下,我喜欢你的名字:D :D - Moinuddin Quadri

2

您还可以将列表推导与组合生成混合使用。使用 itertools 模块是处理组合的好方法。

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

1

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

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

这将在一个列表生成式中循环遍历两个列表。


0

我来晚了,但是这里是我对在Python 3.6+上执行此操作的建议。

[f'{a_item}{b_item}' for a_item in a for b_item in b]

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接