- # 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) # 则打印名字和成绩
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |