6-2 dict常用方法

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}}


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 9,051评论 0 13
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,878评论 0 38
  • 在住的地方窗外,是条高速。为了隔绝声音,种了许多树。半拉开窗帘,光线就从东方照进来。明亮。照得天空中的乌云越发的黑...
    oulan阅读 199评论 0 0
  • 01 最初知道《海上钢琴师》的时候,是被一首曲子所吸引,冥冥之中总有什么牵引着,让我遇见了这部电影。 我相信,喜欢...
    木小夭的路过阅读 567评论 3 8
  • 不知不觉的孩子已经和我差不多高啦!看着他们青春靓丽的面庞,不得不感叹岁月催人老。还记得教他们走路吃饭说话的时刻,简...
    花朵与阳光阅读 531评论 0 0