老莫的笔记本  
  
查看: 112|回复: 0

python 字典

[复制链接]

664

主题

880

帖子

5153

积分

超级版主

Rank: 8Rank: 8

积分
5153
发表于 2023-8-17 17:40:10 | 显示全部楼层 |阅读模式


  1. def d(q):
  2.     print(q)


  3. # name = ['大力', '出', '奇迹', '王三岁', '乖乖女', '777']

  4. w = {'a': '孔大力', 'b': '王三岁', 'c': '大兄弟'}
  5. # 参考链接 https://baijiahao.baidu.com/s?id=1765940919515603678&wfr=spider&for=pc
  6. # 参考链接 https://blog.csdn.net/qq_62731133/article/details/127397112

  7. # 字典的操作
  8. # 1.访问字典 直接取
  9. #   get(键,默认值) 没有这个键的时候  返回一个默认值  ,有这个键 则默认值无效
  10. # 2.添加和更新键值对 (何前端的json 一样 直接 m[键]=值 )
  11. # 3.删除键值对 del 或者 pop(键,'默认值')// 注意这个pop  改变了原本的字典值
  12. # 4.列表的循环for i, v in w.items():
  13. # 5.字典的合并update (如果键名相同,则值会覆盖 后面的覆盖前面的)
  14. # 6.字典复制 (看最下面单独拎了一块)
  15. # 7.推导公式
  16. # 使用内置函数dict()通过其他字典创建
  17. # 使用fromkeys()方法创建字典
  18. # clear()方法:删除字典中的所有元素
  19. # items 获取所有键值对视图
  20. # keys  获取所有键视图
  21. # values 获取所有值视图

  22. d(w['a'])
  23. d(w.get('a'))
  24. d(w.get('d', '华客'))
  25. # 孔大力
  26. # 孔大力
  27. # 华客

  28. w['g'] = '王四岁'
  29. w['a'] = '孔莉'
  30. d(w)
  31. # {'a': '孔莉', 'b': '王三岁', 'c': '大兄弟', 'g': '王四岁'}

  32. del w['a']
  33. d(w)
  34. # {'b': '王三岁', 'c': '大兄弟', 'g': '王四岁'}

  35. w.pop('b')
  36. d(w)
  37. # {'c': '大兄弟', 'g': '王四岁'}

  38. st = ''
  39. for i, v in w.items():
  40.     st += '{}的值是{}==='.format(i, v)
  41. d(st)
  42. # c的值是大兄弟===g的值是王四岁===

  43. n = {'m': '小刘'}
  44. w.update(n)
  45. d(w)
  46. # {'c': '大兄弟', 'g': '王四岁', 'm': '小刘'}

  47. n2 = {'m': '张张'}
  48. w.update(n2)
  49. d(w)
  50. # {'c': '大兄弟', 'g': '王四岁', 'm': '张张'}

  51. n3 = dict(n2)
  52. d(n2)
  53. # {'m': '张张'}

  54. n4 = dict.fromkeys(['鱼', '肉', '奶'], '荤的')
  55. d(n4)
  56. # {'鱼': '荤的', '肉': '荤的', '奶': '荤的'}

  57. d(w.items())
  58. d(w.keys())
  59. d(w.values())
  60. # dict_items([('c', '大兄弟'), ('g', '王四岁'), ('m', '张张')])
  61. # dict_keys(['c', 'g', 'm'])
  62. # dict_values(['大兄弟', '王四岁', '张张'])

  63. # 以上三个数值都可以用 list() 进行转化

  64. n4.clear()
  65. d(n4)
  66. # {}


  67. newa = {k: v for k, v in n4.items}
  68. d(newa)
  69. # 这地方报错了

  70. # 复制字典
  71. # copy()方法,返回字典的浅复制,复制父对象及其子对象的引用
  72. # deepcopy()方法,深复制,完全复制父对象及其子对象,此方法包含在copy模块中
  73. h = {'b': '王三岁', 'c': '大兄弟', 'g': '王四岁', 'k': ['v1', 'v2']}
  74. h2 = h
  75. j = h.copy()
  76. d(j)
  77. # {'b': '王三岁', 'c': '大兄弟', 'g': '王四岁', 'k': ['v1', 'v2']}

  78. k = copy.deepcopy(h)
  79. d(k)
  80. # {'b': '王三岁', 'c': '大兄弟', 'g': '王四岁', 'k': ['v1', 'v2']}

  81. h['k'].append('v3')
  82. d(h)
  83. # {'b': '王三岁', 'c': '大兄弟', 'g': '王四岁', 'k': ['v1', 'v2', 'v3']}

  84. d(h2)
  85. # {'b': '王三岁', 'c': '大兄弟', 'g': '王四岁', 'k': ['v1', 'v2', 'v3']}

  86. d(j)
  87. # {'b': '王三岁', 'c': '大兄弟', 'g': '王四岁', 'k': ['v1', 'v2', 'v3']}
  88. # 这里有个坑点 因为不是深度复制  子对象仍然受到了影响

  89. d(k)
  90. # {'b': '王三岁', 'c': '大兄弟', 'g': '王四岁', 'k': ['v1', 'v2']}



复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表