# 1.字典 存储数据 存储一个数据的属性 可以快速进行查找 # dict_data = {key:value,key:value,...} # key是键 # value是值 # 以大括号表示 # 数据是以键值对出现的 键值对中间用冒号连接 # key的值必须是不可变类型 # 字典和列表和集合是可变类型 print('1.字典') dict_data = {} # 创建一个空的字典 print(dict_data) print(type(dict_data)) dict_data = {'小明': [20, 186], '小芳': 18} print(dict_data) # 2.字典的操作 增删查改 print() print('2.字典的操作,增删查改') # 2.1 增加 # 字典是没有索引的 # 所以字典内是没有顺序的 # key是不能重复的 print() print('2.1 增加') dict_data = {'小明': [20, 186], '小芳': 18} dict_data['小雨'] = 22 # 无指定的key则增加 print(dict_data) # 2.2 修改 print() print('2.2 修改') dict_data['小芳'] = 66 # 有指定的key则修改 print(dict_data) # 2.3 删除 print() print('2.3 删除') # del clear pop(key) dict_data1 = {'小明': 20, '小芳': 18, '小刚': 16} # del dict_data1 # 删除字典 # print(dict_data1) # 会报错,显示变量dict_data1没定义 # del dict_data1['小明1'] # 删除字典中没有的数据会报错 # print(dict_data1) del dict_data1['小明'] # 删除指定的数据 print(dict_data1) dict_data1.clear() # 清空字典 print(dict_data1) dict_data1 = {'小明': 20, '小芳': 18, '小刚': 16} print(dict_data1.pop('小明')) # 返回被删除key所对应的value print(dict_data1) dict_data1 = {'小明': 20, '小芳': 18, '小刚': 16} dict_data1.popitem() # 默认删除最后一个 print(dict_data1) # 2.4 查看 # key keys values items print() print('2.4 查看') dict_data1 = {'小明': 20, '小芳': 18, '小刚': 16} print(dict_data1['小芳']) # key print(dict_data1.get('小芳666')) # 找到则返回value,没找到则返回None print(dict_data1.setdefault('小李', 222)) # 找到则返回value,没找到则返回本行的222同时将数据加入到字典中 print(dict_data1) # 输出可以看到加入了上一行的数据 dict_data1 = {'小明': 20, '小芳': 18, '小刚': 16} print(dict_data1.keys()) # 返回字典中的所有key 返回的是一个序列 print(list(dict_data1.keys())) # 强转为列表 print(tuple(dict_data1.keys())) # 强转为元组 dict_data1 = {'小明': 20, '小芳': 18, '小刚': 16} print(dict_data1.values()) # 返回字典中的所有value 返回的是一个序列 print(type(dict_data1.values())) print(dict_data1.items()) # 返回字典中的key和value 返回的是序列 # 3.字典的遍历循环 print() print('3.字典的便利循环') dict_data1 = {'小明': 20, '小芳': 18, '小刚': 16} for i in dict_data1.keys(): # 输出每一个key print(i) print() for i in dict_data1.values(): # 输出每一个values print(i) print() for i in dict_data1.items(): print(i) # 输出的是元组 print(i[0], i[1]) print() for key, value in dict_data1.items(): # 拆包写法 print(key, value) # 4.集合 set # 没有索引 没有顺序 数据不能重复! # {数据1,数据2,数据3... } print() print('4.集合') set_data = {} # 这是一个空的字典 print(type(set_data)) set_data = set() # 创建一个空的集合 print(type(set_data)) set_data = {1, 2, 3, 4} print(set_data) print(type(set_data)) set_data1 = {1, 2, 3, 4, 6, 2, 1, 1, 3, } # 集合可以去重复 print(set_data1) # 5.集合的查找 # in # not in print() print('5.集合的查找') set_data = {1, 2, 3, 4} print(1 in set_data) print(2 not in set_data) # 6.集合的增加 # add() # update print() print('6.集合的增加') set_data = {1, 2, 3, 4} set_data.add(0) # 添加的数据必须是一个不可变类型 set_data.add(1) # 重复的不会加入 print(set_data) set_data = {1, 2, 3, 4} set_data.update([0, 1, 2, 3, 4, 5, 6]) # 拆开增加 print(set_data) # 7.集合的删除 # remove # discard print() print('7.集合的删除') data = {200, 100, 300} data.remove(200) # 有这个数据就是删除,没有就报错 print(data) data = {200, 100, 300} data.discard(201) # 有这个数据就删除,没有就跳过 print(data) # 今日练习 ''' 今天进行了数学考试, 本次考试中小明58分,小芳80分,小刚99分,小雨46分 (1)请用字典来表达此数据结构 (2)筛选出不及格的同学并且打印他的名称和份数 ''' print() print('今日练习') name_score = {'小明': 58, '小芳': 80, '小刚': 99, '小雨': 46} # 使用字典存储学生姓名和成绩 for name, score in name_score.items(): # 拆包写法 if score < 60: # 如果成绩不及格 print(name, score) # 则打印名字和成绩
python中的字典和集合
打印