码步停蹄 2023-07-04 15:09 采纳率: 80%
浏览 18
已结题

用函数修改列表出现问题

帮我看下代码,哪里出了问题,
我要求用change()函数将原来的列表修改后,打印原列表和新列表,
但实际情况是打印了两份新列表

def change(aa):
    bb = aa
    aa[0] = 99
    print(f"原列表是{bb}")
    print(f"新列表是{aa}")


list_a = [11, 22]
change(list_a)

# 实际输出:原列表是[99, 22]  新列表是[99, 22]
# 我要求的输出:原列表是[11, 22] 新列表是[99, 22]


  • 写回答

3条回答 默认 最新

  • 於黾 2023-07-04 15:16
    关注

    bb = aa
    改为
    bb = aa[:]
    或者
    bb = aa.copy()
    列表是可变值类型,它们指向了同一个引用,改一个就都改了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月12日
  • 已采纳回答 7月4日
  • 创建了问题 7月4日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 易优eyoucms关于二级栏目调用的问题
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题