python中的字典和集合

金歌  金牌会员 | 2022-11-8 23:33:04 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 859|帖子 859|积分 2577

  1. # 1.字典 存储数据 存储一个数据的属性 可以快速进行查找
  2. # dict_data = {key:value,key:value,...}
  3. # key是键
  4. # value是值
  5. # 以大括号表示
  6. # 数据是以键值对出现的 键值对中间用冒号连接
  7. # key的值必须是不可变类型
  8. # 字典和列表和集合是可变类型
  9. print('1.字典')
  10. dict_data = {}  # 创建一个空的字典
  11. print(dict_data)
  12. print(type(dict_data))
  13. dict_data = {'小明': [20, 186], '小芳': 18}
  14. print(dict_data)
  15. # 2.字典的操作 增删查改
  16. print()
  17. print('2.字典的操作,增删查改')
  18. # 2.1 增加
  19. # 字典是没有索引的
  20. # 所以字典内是没有顺序的
  21. # key是不能重复的
  22. print()
  23. print('2.1 增加')
  24. dict_data = {'小明': [20, 186], '小芳': 18}
  25. dict_data['小雨'] = 22  # 无指定的key则增加
  26. print(dict_data)
  27. # 2.2 修改
  28. print()
  29. print('2.2 修改')
  30. dict_data['小芳'] = 66  # 有指定的key则修改
  31. print(dict_data)
  32. # 2.3 删除
  33. print()
  34. print('2.3 删除')
  35. # del clear pop(key)
  36. dict_data1 = {'小明': 20, '小芳': 18, '小刚': 16}
  37. # del dict_data1  # 删除字典
  38. # print(dict_data1)  # 会报错,显示变量dict_data1没定义
  39. # del dict_data1['小明1']  # 删除字典中没有的数据会报错
  40. # print(dict_data1)
  41. del dict_data1['小明']  # 删除指定的数据
  42. print(dict_data1)
  43. dict_data1.clear()  # 清空字典
  44. print(dict_data1)
  45. dict_data1 = {'小明': 20, '小芳': 18, '小刚': 16}
  46. print(dict_data1.pop('小明'))  # 返回被删除key所对应的value
  47. print(dict_data1)
  48. dict_data1 = {'小明': 20, '小芳': 18, '小刚': 16}
  49. dict_data1.popitem()  # 默认删除最后一个
  50. print(dict_data1)
  51. # 2.4 查看
  52. # key keys values items
  53. print()
  54. print('2.4 查看')
  55. dict_data1 = {'小明': 20, '小芳': 18, '小刚': 16}
  56. print(dict_data1['小芳'])  # key
  57. print(dict_data1.get('小芳666'))  # 找到则返回value,没找到则返回None
  58. print(dict_data1.setdefault('小李', 222))  # 找到则返回value,没找到则返回本行的222同时将数据加入到字典中
  59. print(dict_data1)  # 输出可以看到加入了上一行的数据
  60. dict_data1 = {'小明': 20, '小芳': 18, '小刚': 16}
  61. print(dict_data1.keys())  # 返回字典中的所有key  返回的是一个序列
  62. print(list(dict_data1.keys()))  # 强转为列表
  63. print(tuple(dict_data1.keys()))  # 强转为元组
  64. dict_data1 = {'小明': 20, '小芳': 18, '小刚': 16}
  65. print(dict_data1.values())  # 返回字典中的所有value  返回的是一个序列
  66. print(type(dict_data1.values()))
  67. print(dict_data1.items())  # 返回字典中的key和value 返回的是序列
  68. # 3.字典的遍历循环
  69. print()
  70. print('3.字典的便利循环')
  71. dict_data1 = {'小明': 20, '小芳': 18, '小刚': 16}
  72. for i in dict_data1.keys():  # 输出每一个key
  73.     print(i)
  74. print()
  75. for i in dict_data1.values():  # 输出每一个values
  76.     print(i)
  77. print()
  78. for i in dict_data1.items():
  79.     print(i)  # 输出的是元组
  80.     print(i[0], i[1])
  81. print()
  82. for key, value in dict_data1.items():  # 拆包写法
  83.     print(key, value)
  84. # 4.集合 set
  85. # 没有索引 没有顺序 数据不能重复!
  86. # {数据1,数据2,数据3... }
  87. print()
  88. print('4.集合')
  89. set_data = {}  # 这是一个空的字典
  90. print(type(set_data))
  91. set_data = set()  # 创建一个空的集合
  92. print(type(set_data))
  93. set_data = {1, 2, 3, 4}
  94. print(set_data)
  95. print(type(set_data))
  96. set_data1 = {1, 2, 3, 4, 6, 2, 1, 1, 3, }  # 集合可以去重复
  97. print(set_data1)
  98. # 5.集合的查找
  99. # in
  100. # not in
  101. print()
  102. print('5.集合的查找')
  103. set_data = {1, 2, 3, 4}
  104. print(1 in set_data)
  105. print(2 not in set_data)
  106. # 6.集合的增加
  107. # add()
  108. # update
  109. print()
  110. print('6.集合的增加')
  111. set_data = {1, 2, 3, 4}
  112. set_data.add(0)  # 添加的数据必须是一个不可变类型
  113. set_data.add(1)  # 重复的不会加入
  114. print(set_data)
  115. set_data = {1, 2, 3, 4}
  116. set_data.update([0, 1, 2, 3, 4, 5, 6])  # 拆开增加
  117. print(set_data)
  118. # 7.集合的删除
  119. # remove
  120. # discard
  121. print()
  122. print('7.集合的删除')
  123. data = {200, 100, 300}
  124. data.remove(200)  # 有这个数据就是删除,没有就报错
  125. print(data)
  126. data = {200, 100, 300}
  127. data.discard(201)  # 有这个数据就删除,没有就跳过
  128. print(data)
  129. # 今日练习
  130. '''
  131. 今天进行了数学考试,
  132. 本次考试中小明58分,小芳80分,小刚99分,小雨46分
  133. (1)请用字典来表达此数据结构
  134. (2)筛选出不及格的同学并且打印他的名称和份数
  135. '''
  136. print()
  137. print('今日练习')
  138. name_score = {'小明': 58, '小芳': 80, '小刚': 99, '小雨': 46}  # 使用字典存储学生姓名和成绩
  139. for name, score in name_score.items():  # 拆包写法
  140.     if score < 60:  # 如果成绩不及格
  141.         print(name, score)  # 则打印名字和成绩
复制代码





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

金歌

金牌会员
这个人很懒什么都没写!

标签云

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