Python如何交错拼接两个列表的平行位置对应元素实现合并
Python实现两个等长列表按位置交错拼接
你给出的两个列表长度完全一致,要实现平行位置元素交错排列的目标,有两种常用的可靠实现方式:
方法1:zip配合列表推导(最简洁)
利用Python内置的zip函数按位置配对两个列表的元素,再通过列表推导拆包成一维列表即可:
list_a = ["Orange", "Kiwi", "Apple", "Orange"] list_b = ["sweet", "bitter", "nice", "good for skin"] list_c = [elem for pair in zip(list_a, list_b) for elem in pair]
运行后打印list_c就能得到你预期的输出:
["Orange", "sweet", "Kiwi", "bitter", "Apple", "nice", "Orange", "good for skin"]
方法2:索引遍历追加(逻辑直观易理解)
如果对推导式的嵌套逻辑不熟悉,可以直接遍历索引,每轮循环把同位置的两个列表元素按先后顺序追加到结果列表中:
list_c = [] # 两个列表长度相等,取任意一个的长度作为循环范围即可 for idx in range(len(list_a)): list_c.append(list_a[idx]) list_c.append(list_b[idx])
你之前操作仅能得到最后一个元素,大概率是把
append逻辑写在了循环体外部,整个流程只执行了一次元素追加,自然只会保留最后一次传入的值,把追加操作放到循环内逐轮执行即可避免这个问题。
内容的提问来源于stack exchange,提问作者theDreamer911
相关产品推荐
相关产品推荐

