我想将两个不同长度列表的值“粘贴”在一起
例如我有那些清单
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 的方式,或者它是否真的很好。
还有更好的选择吗?谢谢
你可以只使用嵌套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)