微凉的衣柜 2022-02-20 15:44 采纳率: 63.9%
浏览 34
已结题

python list获得的是元素的引用还是值?

如下两段代码:
代码1:

    aa = [[1, 2], [2, 3], [3, 4]]
    qq = aa[0]
    qq[1] = 0
    print(aa)#[[1, 0], [2, 3], [3, 4]]#aa被改变了

代码2:

    aa = [[1, 2], [2, 3], [3, 4]]
    qq = aa[0]
    qq = [8, 8]
    print(aa)#[[1, 2], [2, 3], [3, 4]]#aa没有被改变

为何代码1中aa被改变了?qq获得的是值拷贝还是引用?

  • 写回答

3条回答 默认 最新

  • youcans_ 人工智能领域优质创作者 2022-02-20 17:42
    关注

    代码 2 中,
    (1)"qq=aa[0]" 直接赋值,默认浅拷贝传递对象的引用。
    (2)"qq = [8, 8]",相当于对 qq 重新进行定义并赋值,而不是指针传递,因此 aa 没有改变。

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

报告相同问题?

问题事件

  • 系统已结题 2月28日
  • 已采纳回答 2月20日
  • 修改了问题 2月20日
  • 修改了问题 2月20日
  • 展开全部