美文网首页
6-2 dict常用方法

6-2 dict常用方法

作者: 正在努力ing | 来源:发表于2018-08-23 20:17 被阅读0次

    fromkeys

    接受

    1 一个可以迭代的对象

    2 值 value

    通过迭代对象的key找到对应值,然后把接受到的值赋值给对应的key的value,但是不是修改value,因为它是生成一个新的dict

    
    mydict = {"a":2,"B":3,"V":5}
    
    dict_gen = {key:value for key,value in mydict.items()}
    
    cpone = dict.fromkeys(dict_gen, {2,3,4})
    
    print(cpone)
    
    

    {'B': {2, 3, 4}, 'V': {2, 3, 4}, 'a': {2, 3, 4}}

    
    cpone = dict.fromkeys("V", {"D":7})
    
    print(cpone)
    
    

    {'V': {'D': 7}}

    深拷贝和浅拷贝

    
    cpone = {'B': {"F":4}, 'V': {"D": 4}, 'a': {"b":4}}
    
    cptwo = cpone.copy()
    
    cptwo["V"]["D"] = 2
    
    #修改第二层的key是属于第一层的操作
    
    cptwo["B"] = {"a":1}
    
    print(cpone)
    
    print(cptwo)
    
    

    {'B': {'F': 4}, 'V': {'D': 2}, 'a': {'b': 4}}

    {'B': {'a': 1}, 'V': {'D': 2}, 'a': {'b': 4}}

    
    mydict = {"a":2,"B":3,"V":5}
    
    dict_gen = {key:value for key,value in mydict.items()}
    
    cpone = dict_gen.copy()
    
    cpone["a"] = 4
    
    print(dict_gen)
    
    print(cpone)
    
    

    {'B': 3, 'V': 5, 'a': 2}

    {'B': 3, 'V': 5, 'a': 4}

    浅拷贝只把第一层的key:value给复制过来,第二次的key:value只是复制一个指针(指针指向原来的key value),所以修改第二层的value时,会把原来的修改了;修改第二层的key是属于第一层的操作

    
    # 深度拷贝
    
    cpone = {'B': {"F":4}, 'V': {"D": 4}, 'a': {"b":4}}
    
    import copy
    
    cptwo = copy.deepcopy(cpone)
    
    cptwo["V"]["D"] = 2
    
    cptwo["B"] = {"a":1}
    
    print(cpone)
    
    print(cptwo)
    
    

    {'B': {'F': 4}, 'V': {'D': 4}, 'a': {'b': 4}}

    {'B': {'a': 1}, 'V': {'D': 2}, 'a': {'b': 4}}

    
    

    相关文章

      网友评论

          本文标题:6-2 dict常用方法

          本文链接:https://www.haomeiwen.com/subject/khamiftx.html