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

Python循环向列表所有位置插入固定元素输出异常如何解决

问题原因
  • Python中的列表是可变对象,执行list_of_nrs.append(l)操作时,实际存入结果列表的是列表l的内存引用,而非当前状态下的独立副本。
  • 每次循环插入"1"后存入的都是同一个l的引用,后续执行del l[index]操作时,所有已经存入list_of_nrs的引用都会同步更新为删除后的状态,最终所有元素都显示为删除"1"后的原列表。
解决方法

只需要在append操作时存入当前l的独立副本即可,常见的副本生成方式有调用.copy()方法、切片[:]、list()构造函数,修改后的代码如下:

l = ["2","3","6"]
list_of_nrs = []
for index in range(len(l)+1):
    l.insert(index, "1")
    list_of_nrs.append(l.copy()) # 存入当前列表的副本而非引用
    del l[index]
print(list_of_nrs)

运行后即可得到预期输出:

[['1', '2', '3', '6'], ['2', '1', '3', '6'], ['2', '3', '1', '6'], ['2', '3', '6', '1']]

你也可以将l.copy()替换为l[:]或者list(l),都可以实现生成独立副本的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 09:24:01