我有两个清单。我想像这样加入他们:
[1, 2, 3], [1, 2, 3] => [1, 1, 2, 2, 3, 3]
[1], [2, 3] => [1, 2]
[], [1, 2, 3] => []
[4, 5, 6, 7], [1] => [4, 1]
有没有简单的方法可以做到没有itertools?
它似乎我想出了如何做到这一点:
new_list = first_list+second_list
new_list[::2] = first_list
new_list[1::2] = second_list
return new_list
但它只适用于相同长度的列表
使用zip
你的名单列表(你可以有很多子列表,只要你想)的使用参数传递*
开箱和扁平化的项目(zip
在最短的名单停止):
s = [1, 2, 3], [1, 2, 3]
result = [y for x in zip(*s) for y in x]
这相当于(对于那些不习惯参数解包的人):
first_list = [1, 2, 3]
second_list = [1, 2, 3]
result = [y for x in zip(first_list,second_list) for y in x]
结果:
[1, 1, 2, 2, 3, 3]
和s = [1], [2, 3]
你[1,2]
预期的一样
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句