You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按奇偶位交叉规则合并两个Python列表?

Python实现按规则合并两个列表

方法一:切片+列表推导式

先提取两个列表中符合要求的元素片段,再交替合并:

list1 = ['a', 'b', 'c', 'd', 'e', 'f']
list2 = ['g', 'h', 'i', 'j', 'k', 'l']

# 取list1的第1、3、5个元素(对应索引0、2、4,步长为2)
part1 = list1[::2]
# 取list2的第2、4、6个元素(对应索引1、3、5,从索引1开始步长为2)
part2 = list2[1::2]

# 交替拼接两个片段的元素
list3 = [item for pair in zip(part1, part2) for item in pair]
print(list3)  # 输出: ['a', 'h', 'c', 'j', 'e', 'l']

方法二:循环索引添加

通过遍历索引直接选取目标元素,适合需要处理边界情况的场景:

list1 = ['a', 'b', 'c', 'd', 'e', 'f']
list2 = ['g', 'h', 'i', 'j', 'k', 'l']
list3 = []

# 按步长2遍历索引,每次取list1的当前索引元素和list2的下一个索引元素
for i in range(0, len(list1), 2):
    list3.append(list1[i])
    # 确保list2存在对应索引的元素,避免越界报错
    if i + 1 < len(list2):
        list3.append(list2[i + 1])

print(list3)  # 输出: ['a', 'h', 'c', 'j', 'e', 'l']

说明

  • 方法一更简洁,适合两个列表长度一致的场景;方法二更灵活,能处理其中一个列表更短的情况。
  • 注意Python列表是0索引,第1个元素对应索引0,第2个对应索引1,这是切片和索引取值的核心依据。

内容的提问来源于stack exchange,提问作者zereay mulugeta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 21:39:36