压缩两个列表,循环浏览较短的列表


a = ["1", "2", "3"] 
b = ["a", "b", "c", "d", "e"] 
desired_output = ["1a", "2b", "3c", "1d", "2e"] 

大家好,我想把ab组合成一个新的列表,其中b可以是任何长度,但我只想循环使用a的排序值。

(注意:我试过使用zip_longest,其中fillvalue=cycle通过列表a……但这是正确的方法吗?(

小贴士?谢谢丹。

试试这个:

from itertools
a = ["1", "2", "3"]
b = ["a", "b", "c", "d", "e"]
[x + y for x, y in zip(itertools.cycle(a), b)]

您将需要使用一些模块化算法来包装较短列表的索引,直到根据需要多次包装以匹配较长列表的长度。

a = ['1','2','3']
b = ['a','b','c','d','e']
desired_output = []
for i in range(len(b)):
a_index = i % len(a)
index = a_index + i
val = a[a_index] + b[i]
desired_output.append(val)

更紧凑地说,你可以使用列表理解。

desired_output = [a[i % len(a)] + b[i] for i in range(len(b))]

相关内容

  • 没有找到相关文章

最新更新