d和d2指向同一个对象 。
当d中的值改变时,d2中的值也随之改变 。
d = {'a': 1, 'b': 4, 'c': 3, 'e': 5, 'f': 6}d2 = dd['a'] = 7print(d,id(d))print(d2,id(d2))
打印
{'a': 7, 'b': 4, 'c': 3, 'e': 5, 'f': 6} 2121296378120{'a': 7, 'b': 4, 'c': 3, 'e': 5, 'f': 6} 2121296378120
用copy()方法:
d = {'a': 1, 'b': 4, 'c': 3, 'e': 5, 'f': 6}d2 = d.copy()print(d,id(d))print(d2,id(d2))
打印
{'a': 1, 'b': 4, 'c': 3, 'e': 5, 'f': 6} 3102906251528{'a': 1, 'b': 4, 'c': 3, 'e': 5, 'f': 6} 3102906251608
d和d2指向不同对象 。
当d中的值改变时,d2中的值不会改变 。
d = {'a': 1, 'b': 4, 'c': 3, 'e': 5, 'f': 6}d2 = d.copy()d['a'] = 7print(d,id(d))print(d2,id(d2))
打印
{'a': 7, 'b': 4, 'c': 3, 'e': 5, 'f': 6} 2430767003912{'a': 1, 'b': 4, 'c': 3, 'e': 5, 'f': 6} 2430767003992
当字典的值为字典时,
d = {'a': {'name':'Tom','age':'20','gender':'male'}, 'b': 4, 'c': 3, 'e': 5, 'f': 6}d2 = d.copy()print(d,id(d))print(d2,id(d2))
打印
{'a': {'name': 'Tom', 'age': '20', 'gender': 'male'}, 'b': 4, 'c': 3, 'e': 5, 'f': 6} 2220628113672{'a': {'name': 'Tom', 'age': '20', 'gender': 'male'}, 'b': 4, 'c': 3, 'e': 5, 'f': 6} 2220628114392
当d中的值的值改变时,如
d = {'a': {'name':'Tom','age':'20','gender':'male'}, 'b': 4, 'c': 3, 'e': 5, 'f': 6}d2 = d.copy()d['a']['name'] = 'Jerry'print(d,id(d))print(d2,id(d2))
打印
{'a': {'name': 'Jerry', 'age': '20', 'gender': 'male'}, 'b': 4, 'c': 3, 'e': 5, 'f': 6} 2104435669336{'a': {'name': 'Jerry', 'age': '20', 'gender': 'male'}, 'b': 4, 'c': 3, 'e': 5, 'f': 6} 2104435670056
复制:即创建已有对象的副本,则原对象改变,副本应该不发生改变,这才是正常的复制 。
修改d时,d中的’a’下的’name’的值也发生了改变,此即浅复制,只会复制字典本身,字典中还有字典不会被复制 。
总结:浅复制只会复制字典本身,如果字典中还有字典,是不会被复制的 。
4.5 遍历字典 keys()
该方法会返回字典所有的键 。
d = {'name':'Tom','age':'20','gender':'male'}for key in d.keys():print(d[key])
打印
Tom20male
- 最神秘的三座陵墓,一座不能挖,一座不敢挖,另一座挖不动
- 明明是一代传奇词人,偏偏无奈生在帝王家
- 一个开创出了盛世,同时也是历史上最大的败家子的帝王
- 宋仁宗:历史上最宽仁的皇帝之一却也难过美人关
- 一条杆棒等身齐:揭开太祖赵匡胤的武功有多高
- 乾隆皇帝一生最大的过错是什么?他为何这样做
- 三国十大家门不幸的美女:最后一个让人脊背发凉
- 【地图学】二、地图矢量化
- 【批量改文件夹中的图片名称-python】
- 60升电热水器功率一般多大