zoukankan      html  css  js  c++  java
  • python 复制列表

    python的变量仅仅是指向对象的标签,所以在操作列表的时候,list1 = list2这种做法只会复制一个标签,然后指向对象,并非生成一个新的对象。

    大致有5中方法可以复制列表:

    a = [1,2,3,[1]]
    b= a[:]
    c= list(a)
    d = a *1
    e = copy.copy(a)
    f = copy.deepcopy(a)

    再对a列表进行操作

    a.append(12)
    a[3].append(12)
    print id(a),a
    print id(b),b print id(c),c print id(d),d print id(e),e print id(f),f

    各个复制方式的结果比较

    41900952 [1, 2, 3, [1, 12], 12]
    41899112 [1, 2, 3, [1, 12]]
    41919792 [1, 2, 3, [1, 12]]
    41889664 [1, 2, 3, [1, 12]]
    41922192 [1, 2, 3, [1, 12]]
    41900912 [1, 2, 3, [1]]

    可以看出五个方式都可以复制列表,但是如果列表中含有子列表,b,c,d,e四个方式的子列表是指向a的对象上面,只有f方式是完全复制了一个新的列表

  • 相关阅读:
    195
    194
    193
    192
    191
    190
    Oracle 11g使用rman从单实例迁移到RAC
    RESTful API 设计指南
    Oracle GoldenGate(OGG)- 超级详细
    【转】Oracle GoldenGate OGG管理员手册
  • 原文地址:https://www.cnblogs.com/michealLang/p/9257859.html
Copyright © 2011-2022 走看看