以某种方式组合2 list中的元素



我对将两个列表以某种方式组合成一个列表有疑问。有人能帮我吗?

我有两个列表

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)

相关内容

  • 没有找到相关文章

最新更新