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]}}
    """
  • 相关阅读:
    字符串-回文-Manacher算法
    字符串匹配 扩展KMP BM&Sunday
    字符串匹配-KMP
    最长上升子序列
    nginx编译安装
    nginx命令介绍
    ftp服务
    pika消息中间件模块
    multiprocessing多进程模块
    iptables详解
  • 原文地址:https://www.cnblogs.com/bymo/p/8709726.html
Copyright © 2011-2022 走看看