Python列表插入元素报错:TypeError问题排查与预期结果实现
问题分析与解决
错误原因
你的代码存在两个关键问题:
list.insert()是原地修改列表的方法,它的返回值是None。第一次执行Cb=Cb[0].insert(0,len(Cb[0]))后,Cb被赋值为None,第二次循环时再访问Cb[0],自然会触发NoneType无法下标访问的错误。- 循环逻辑完全多余:原
Cb[0]长度为3,循环3次会插入3次元素,但你的预期输出只需要在列表末尾添加一个0。
修正后的代码
要在Cb[0]的末尾(即索引len(Cb[0])的位置)插入0,直接执行以下代码即可:
Cb=[[1.0, 0.0, 0.0]] # 直接在Cb[0]的末尾插入0,len(Cb[0])就是末尾的下一个索引位置 Cb[0].insert(len(Cb[0]), 0.0) # 或者用更直观的append方法实现末尾添加 # Cb[0].append(0.0) print(Cb)
运行结果
[[1.0, 0.0, 0.0, 0.0]]
内容的提问来源于stack exchange,提问作者isaacmodi123
相关产品推荐
相关产品推荐

