如何在Python中按序列位置比较并合并两个列表?
合并两个列表的实现方案
给定两个待合并的列表:
a = [0.1, 0.2, '-', '-', 0.3] b = ['-', '-', 0.4, 0.5, '-']
需要按位置合并,得到目标列表:
c = [0.1, 0.2, 0.4, 0.5, 0.3]
核心思路
每个位置上优先取列表a中不为'-'的元素,若a对应位置是'-',则取列表b对应位置的元素。
实现方法
方法1:列表推导式(简洁高效)
利用Python的列表推导式,结合zip()函数配对对应位置元素,一行代码完成合并:
c = [x if x != '-' else y for x, y in zip(a, b)]
方法2:循环遍历(直观易懂)
如果需要更清晰的逻辑展示,可通过循环逐个判断并添加元素:
c = [] for x, y in zip(a, b): if x != '-': c.append(x) else: c.append(y)
两种方法运行后,都能得到目标列表c。
内容的提问来源于stack exchange,提问作者Afiq Khairuddin
相关产品推荐
相关产品推荐

