Skip to main content
 首页 » 编程设计

python之将两个列表连接在一起时遇到问题

2025年05月04日13lonelyxmas

我有两个列表。我想像这样加入他们:

[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] 正如预期的那样