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

Python向列表子列表指定位置插入元素报错,需实现预期输出

问题解决:给列表子元素插入指定值

错误原因

Python中列表的insert()方法是原地修改列表,它的返回值是None。你的代码里每次循环都把A赋值为A[i].insert(...)的返回值,第一次循环后A就变成了None,第二次循环访问A[i]时自然会抛出TypeError: 'NoneType' object is not subscriptable。

另外你代码里插入的值写的是0,但预期输出里需要插入对应索引i(比如第二个子列表插1),这也是不符合预期的点。

修正后的代码

直接原地修改每个子列表,不要覆盖原列表A:

A = [[1, 2, 3],[0, 2, 3],[0, 1, 3],[0, 1, 2]]

for i in range(len(A)):
    # 给第i个子列表的位置0插入值i
    A[i].insert(0, i)

print(A)

运行结果

输出和预期完全一致:

[[0, 1, 2, 3], [1, 0, 2, 3], [2, 0, 1, 3], [3, 0, 1, 2]]

更简洁的写法(列表推导式)

如果不想原地修改原列表,可以用列表推导式生成新列表,代码更简洁:

A = [[1, 2, 3],[0, 2, 3],[0, 1, 3],[0, 1, 2]]
new_A = [[i] + sublist for i, sublist in enumerate(A)]
print(new_A)

这种方式不会改变原列表A,直接生成符合要求的新列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 20:45:37