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

Python中按列表指定位置赋值导致长度异常的解决方法

问题解决:用索引赋值替代插入操作

你的问题根源在于使用了insert()方法——这个方法是在指定位置新增元素,每次调用都会让列表长度加1,循环10次后,原本长度为10的list3就被扩展成了20。

要实现「把list1的元素作为位置,将list2对应元素赋值给list3」的需求,直接通过索引赋值即可,不需要插入操作。修改后的代码如下:

list1 = [0, 1, 2, 3, 4, 6, 9, 5, 7, 8]
list2 = [0, 1, 2, 2, 2, 2, 2, 3, 4, 5]
list3 = [0]*len(list1)
for i in range(len(list1)):
    # 通过索引直接替换原有位置的元素,而非插入新元素
    list3[list1[i]] = list2[i]

print(list3)  # 输出:[0, 1, 2, 2, 2, 3, 2, 4, 5, 2]

循环结束后,list3的长度保持为10,且每个位置的值都符合预期。

内容的提问来源于stack exchange,提问作者Iago Álvarez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 11:45:36