我对将两个列表以某种方式组合成一个列表有疑问。有人能帮我吗?
我有两个列表
a = ['a', 'b', 'c', 'd', 'e']
b = [1, 2, 3]
我想要的结果列表像['a1', 'b2', 'c3', 'd1', 'e2']
必须通过遍历列表a并同时遍历列表b来生成结果列表。
我试过下面的代码
r = ['%s%d' % item for item in zip(a,b)]
['a1', 'b2', 'c3']
您可以使用itertools.cycle
来重复最短列表:
from itertools import cycle
out = [f'{x}{y}' for x, y in zip(a, cycle(b))]
如果你不知道a/b中哪一个最长:
from itertools import cycle
out = [f'{x}{y}' for x, y in
(zip(a, cycle(b)) if len(a)>len(b) else zip(cycle(a), b))]
输出:['a1', 'b2', 'c3', 'd1', 'e2']
可以使用zip()函数同时遍历两个列表
a = ['a', 'b', 'c', 'd', 'e']
b = [1, 2, 3]
result = [x+str(y) for x, y in zip(a, b*len(a))]
print(result)