将 2 个不同长度列表的值粘贴在一起

Jul*_*rre 1 python

我想将两个不同长度列表的值“粘贴”在一起

例如我有那些清单

x = [1, 2, 3, 4]
y = ['a', 'b', 'c']
Run Code Online (Sandbox Code Playgroud)

所以期望的输出是:

['a1', 'a2', 'a3', 'a4', 'b1', 'b2', 'b3', 'b4', 'c1', 'c2', 'c3', 'c4']

我找到了一种方法来实现它:

li = []
for yy in y : 
  li += list(map(lambda xx : yy + str(xx), x))
Run Code Online (Sandbox Code Playgroud)

但我不确定这是否是 Python 的方式,或者它是否真的很好。

还有更好的选择吗?谢谢

tim*_*geb 5

你可以只使用嵌套for循环

>>> x = [1, 2, 3, 4]
>>> y = ['a', 'b', 'c']
>>> [f'{c}{i}' for c in y for i in x]    
['a1', 'a2', 'a3', 'a4', 'b1', 'b2', 'b3', 'b4', 'c1', 'c2', 'c3', 'c4']
Run Code Online (Sandbox Code Playgroud)

或者因为这是一个迭代问题,所以抛出itertools

>>> from itertools import product
>>> [f'{c}{i}' for c, i in product(y, x)]
['a1', 'a2', 'a3', 'a4', 'b1', 'b2', 'b3', 'b4', 'c1', 'c2', 'c3', 'c4']
Run Code Online (Sandbox Code Playgroud)