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

Python中嵌套列表对应子列表的元素级合并及错误排查

解决Python嵌套列表对应位置子列表元素合并问题

问题描述

输入三个嵌套列表:

a = [['alpha','beta','gamma'],['delta','epsilon','zeta'],['eta','theta','iota']]
b = [['AB'],['CD'],['EF']]
c = [['1','2','3'],['4','5','6'],['7','8','9']]

需要将对应位置的子列表元素合并,得到期望输出:

d = [['alpha','beta','gamma','AB','1','2','3'],['delta','epsilon','zeta','CD','4','5','6'],['eta','theta','iota','EF','7','8','9']]

原代码错误分析

你写的代码出现TypeError: list indices must be integers or slices, not list,是因为for x in a循环时,x是a中的子列表(比如['alpha','beta','gamma']),而列表索引必须是整数,不能用列表当索引去取a[x]、b[x]。

解决方案

方法1:通过索引遍历

用range(len(a))获取整数索引,然后根据索引取三个列表中对应位置的子列表进行拼接:

d = []
for i in range(len(a)):
    merged = a[i] + b[i] + c[i]
    d.append(merged)

方法2:使用zip()函数(更简洁)

zip(a, b, c)会把三个列表中对应位置的子列表打包成元组,直接遍历这些元组并拼接:

d = []
for sub_a, sub_b, sub_c in zip(a, b, c):
    d.append(sub_a + sub_b + sub_c)

方法3:列表推导式(一行代码解决)

把上面的循环简化成列表推导式,更简洁高效:

d = [sub_a + sub_b + sub_c for sub_a, sub_b, sub_c in zip(a, b, c)]

运行以上任意一种方法,都能得到你想要的输出结果。

内容的提问来源于stack exchange,提问作者Teresa Bonserio

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 19:45:40