如何用Python实现两个列表的交替合并?
问题描述
现有两个列表:
ListA =['AB' , 'EF'] ListB = ['CD', 'GH']
需要得到第三个列表,格式如下:
ListC =['AB', 'CD', 'EF', 'GH']
请问如何用Python实现该需求?
实现方法
这里需要将两个等长列表的元素交替合并,可以用以下几种实用方式实现:
方法一:列表推导式结合zip
zip会把两个列表对应位置的元素打包成元组,再通过嵌套列表推导式展开每个元组的元素:
ListA = ['AB', 'EF'] ListB = ['CD', 'GH'] ListC = [item for pair in zip(ListA, ListB) for item in pair] print(ListC) # 输出: ['AB', 'CD', 'EF', 'GH']
方法二:手动循环添加
如果需要更直观的逻辑,直接通过循环逐个添加对应元素:
ListA = ['AB', 'EF'] ListB = ['CD', 'GH'] ListC = [] for a, b in zip(ListA, ListB): ListC.append(a) ListC.append(b) print(ListC) # 输出: ['AB', 'CD', 'EF', 'GH']
方法三:借助itertools.chain
用itertools模块的chain.from_iterable展开打包后的元素,适合处理更长的列表场景:
from itertools import chain ListA = ['AB', 'EF'] ListB = ['CD', 'GH'] ListC = list(chain.from_iterable(zip(ListA, ListB))) print(ListC) # 输出: ['AB', 'CD', 'EF', 'GH']
注意:以上方法默认两个列表长度相同;若列表长度不一致,
zip只会处理到较短列表的长度,需额外判断调整逻辑。
内容的提问来源于stack exchange,提问作者Saurjayan Bhattacharjee
相关产品推荐
相关产品推荐

