zoukankan      html  css  js  c++  java
  • 关于列表和列表之间赋值问题,以及copy问题

    name = [1,2,3,4,5]

    names = name

    当name的值 赋值给names,name列表里面的值修改了,为什么names的值也被修改了

    这是因为列表需要一个容器去存放里面的值,容器里面的值内存地址是不一样的,names 被赋值的只是name存放列表的容器。name 和names 指向的都是同一个内存地址当中的一个容器,所以当name列表值被修改时,names也跟着修改了

    copy问题   

    name = [1,2,3,[5,6.7]]
    n1=name.copy()

    当 name[-1][0]= 1时

    n1的值也跟着修改了。

    这是因为copy只能潜copy,不能影响到深处,列表里面的嵌套列表依旧还是指向同一个内存地址。

    要深度copy,必须使用而外的copy工具

    import copy

    n2 = copy.deepcopy(n1)

    只有这样完全copy,才会全部独立

  • 相关阅读:
    Linux_day01_primaryCommand
    Variational auto-encoder VS auto-encoder
    python yield generator 详解
    Paper Writing
    DTU_AI lecture 09
    DTU_AI lecture 08
    Attention mechanism
    Energy Journals
    TF + pytorch学习
    expRNN
  • 原文地址:https://www.cnblogs.com/zhengyiqun1992/p/9971998.html
Copyright © 2011-2022 走看看