zoukankan      html  css  js  c++  java
  • [Python] dict字典的浅复制与深复制

    Python中针对dict字典有两种复制:

    (1)浅复制:利用 copy() 或者 dict() ;复制后对原dict的内部子对象(方括号[]内元素)进行操作时,由浅复制得到的dict受该操作影响

    (2)深复制:利用 deepcopy() ;复制后对原dict的内部子对象(方括号[]内元素)进行操作时,由深复制得到的dict不会受该操作影响

    from copy import deepcopy
    
    def test():
        d1 = {"a": {"keys": [1, 2, 3]}, 'b': {"keys": [4, 5, 6]}}
        d2 = d1.copy()            # 浅复制
        d3 = dict(d1)             # 浅复制
        d4 = deepcopy(d1)         # 深复制
        print("d1=%s 
    d2=%s 
    d3=%s 
    d4=%s" % (d1, d2, d3, d4))
        d1["a"]["keys"] = [1, 2]  # 修改d1的值
        print("d1 modified.")
        print("d1=%s 
    d2=%s 
    d3=%s 
    d4=%s" % (d1, d2, d3, d4))
    
    """
    输出结果:
    d1={'a': {'keys': [1, 2, 3]}, 'b': {'keys': [4, 5, 6]}} 
    d2={'a': {'keys': [1, 2, 3]}, 'b': {'keys': [4, 5, 6]}} 
    d3={'a': {'keys': [1, 2, 3]}, 'b': {'keys': [4, 5, 6]}} 
    d4={'a': {'keys': [1, 2, 3]}, 'b': {'keys': [4, 5, 6]}}
    d1 modified.
    d1={'a': {'keys': [1, 2]}, 'b': {'keys': [4, 5, 6]}} 
    d2={'a': {'keys': [1, 2]}, 'b': {'keys': [4, 5, 6]}} 
    d3={'a': {'keys': [1, 2]}, 'b': {'keys': [4, 5, 6]}} 
    d4={'a': {'keys': [1, 2, 3]}, 'b': {'keys': [4, 5, 6]}}
    """
  • 相关阅读:
    Web APIs——DOM
    案例:动态生成表格
    案例:简单版发布留言功能
    案例:下拉菜单功能
    案例:tab栏切换功能(原生JS写法)
    时间复杂度
    ubuntu下安装LNMP
    btree索引和hash索引的区别
    StandardServer.await: Invalid command 'GET / HTTP/1.1' received
    MySQL----触发器
  • 原文地址:https://www.cnblogs.com/bymo/p/8709726.html
Copyright © 2011-2022 走看看