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

Python中向嵌套列表单个子列表追加元素却全部变更的解决方法

如何正确创建独立子列表的嵌套列表并单独修改某一子列表

你遇到的问题本质是 [[]] * 5 并没有生成5个独立的空列表,而是把同一个空列表的引用重复了5次——这就导致修改任意一个子列表,所有位置的引用都会指向被修改后的列表。

下面是几种解决办法:

  • 用列表推导式创建独立嵌套列表
    这是最常用也最简洁的方式,每次循环都会生成一个全新的空列表,确保每个子列表都是独立对象:

    list_of_lists = [[] for _ in range(5)]
    list_of_lists[2].append(123)
    print(list_of_lists)  # 输出: [[], [], [123], [], []]
    
  • 手动循环添加空列表
    如果你不习惯列表推导式,也可以通过循环逐个添加新的空列表:

    list_of_lists = []
    for _ in range(5):
        list_of_lists.append([])
    list_of_lists[2].append(123)
    print(list_of_lists)  # 输出: [[], [], [123], [], []]
    
  • 如果已经用[[]]*5创建了列表,补救方法
    先把目标位置的子列表替换成全新的空列表,再进行追加操作:

    list_of_lists = [[]] * 5
    list_of_lists[2] = []  # 替换为新的空列表,断开和原列表的引用
    list_of_lists[2].append(123)
    print(list_of_lists)  # 输出: [[], [], [123], [], []]
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 12:45:51