我有两个列表。我想像这样加入他们:
[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] 正如预期的那样
