Python学习笔记(九)字典与集合
一、字典
1.字典的创建
字典是Python提供的一种常用数据结构,由键(key)和值(value)成对组成,键和值中间以冒号:隔开,项之间用逗号隔开,整个字典由大括号{}括起来
第一种创建方式:
1 dic = {'姓名': '李四', '年龄': 18, '性别': '男'} 2 print(dic)
第二种创建方式,通过关键字dict创建:
1 # 通过内置函数创建 dict(key=value,key=value) 2 a_dic = dict(name='DYX', age=24) 3 print(a_dic)
二、字典常用操作
1.查找数据
1)根据key值查询,字典中的键都是唯一的,后面会把之前已存在的键值覆盖
1 dic = {'name': '李四', 'age': 18, 'gender': '男', 'age': 120} 2 print(dic) 3 print(dic['age']) 4 # print(dic['ageeee']) #KeyError: 'ageeee'
2)get()
1 dic = {'name': '李四', 'age': 18, 'gender': '男', 'age': 120} 2 print(dic.get('age')) 3 print(dic.get('ageeee')) # 不存在时返回None
3)keys()
查找所有键
1 dic = {'name': '李四', 'age': 18, 'gender': '男', 'age': 120} 2 print(dic.keys()) 3 # 遍历字典key 4 for i in dic.keys(): 5 print(i, end=' ')
4)values()
查找所有值
1 dic = {'name': '李四', 'age': 18, 'gender': '男', 'age': 120} 2 print(dic.values()) 3 # 遍历字典value 4 for i in dic.values(): 5 print(i)
5)items()
1 dic = {'name': '李四', 'age': 18, 'gender': '男', 'age': 120} 2 print(dic.items()) 3 # 遍历字典item 4 for i in dic.items(): 5 print(i) # 返回的是元组 6 7 for i, j in dic.items(): 8 print(i, j)
2.增加与修改数据
1)字典序列[key]=值
如果key存在则修改这个key对应的值,如果key不存在则新增此键值对
1 dic = {'name': '李四', 'age': 18, 'gender': '男', 'age': 120} 2 print(dic) 3 dic['name'] = '王五' 4 print(dic) 5 dic['tel'] = '10086' 6 print(dic) 7 # 字典为可变类型
2)update()
添加键值对,字典对象的update()方法,可以将另一个字典全部添加到当前字典中,如果两个字典中存在相同的“键”,则以另一个字典中的“值”为准,对当前字典进行更新
1 a_dic = {'ranking': [98, 97], 'age': 24, 'name': 'DYX', 'sex': 'male'} 2 # 字典中的值可以是列表、数字、字符串、元组等等,是很宽泛的 3 # 字典中的“键”不能使用列表、集合、字典作为字典的“键”,不能用可变数据类型作为键 4 print(a_dic.items()) 5 # update方法添加的是一个字典 6 a_dic.update({'age': 25, 'b': 'b'}) 7 print(a_dic) 8 # 两个字典合并
3.删除数据
1)del
删除字典或删除字典中指定键值对
1 dic = {'name': '李四', 'age': 18, 'gender': '男', 'age': 120} 2 del dic['gender'] 3 print(dic) 4 5 del dic 6 print(dic) # NameError: name 'dic' is not defined.
2)clear()
清空字典
1 dic = {'name': '李四', 'age': 18, 'gender': '男', 'age': 120} 2 dic.clear() 3 print(dic)
3)pop()
删除并返回指定“键”的元素
1 dic = {'name': '李四', 'age': 18, 'gender': '男', 'age': 120} 2 temp = dic.pop('name') 3 print(temp) 4 print(dic)
三、集合
集合是一个无序的不重复元素序列,可以使用{}或者set()函数创建集合,注意:创建一个空集合必须用set()而不是{},因为{}是用来创建空字典的
1.集合的创建
1 se = {1, 2, 3, 4, 5, 6, 7, 8, 9} 2 print(se, type(se)) 3 # print(se[1]) # TypeError: 'set' object is not subscriptable 4 # 无序 5 # 不可重复 6 # 去重的功能 7 8 se = set() 9 print(se, type(se)) 10 11 se2 = set('123456') 12 se2 = list(set('123456')) # list类型的强制转换 13 print(se2)
四、集合的常用操作
1.增加数据
1)add()
增加的元素,只能是数字、字符串、元组或者布尔类型的值,不能添加列表、字典、集合这类可变的数据,否则Python解释器会报TypeError错误
1 se = {10086, 10010, 10001} 2 se.add(123) 3 # se.add([1, 2, 3, 4]) # TypeError: unhashable type: 'list' 4 print(se)
因为集合有去重功能,所以,当向集合内追加的数据是当前集合已有数据的话,则不进行任何操作
1 se = {10086, 10010, 10001} 2 se.add(100) 3 se.add(100) 4 se.add(100) 5 se.add(100) 6 se.add(100) 7 print(se)
2)update()
追加序列数据
1 s1 = {10, 20} 2 dic = {'name': '张三', 'age': 18} 3 # s1.update(100) # TypeError: 'int' object is not iterable 整型不是可迭代对象 4 s1.update([100, 200]) # 增加的必须是可迭代对象 5 s1.update('abc') 6 s1.update(dic) # 增加的是字典的键 7 s1.update(dic.values()) # 增加的是字典的值 8 print(s1)
2.删除数据
1)remove()
删除集合中的指定数据,如果数据不存在则报错
1 s1 = {10, 20} 2 s1.remove(10) 3 print(s1) 4 # s1.remove('10') # KeyError: '10' 5 print(s1)
2)discard()
删除集合中的指定数据,如果数据不存在也不会报错
1 s1 = {10, 20} 2 s1.discard(10) 3 print(s1) 4 s1.discard('10') 5 print(s1)
3)pop()
随机删除集合中的一个数据,并返回这个数据
1 s1 = {10, 20} 2 s1 = s1.pop() 3 print(s1)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义