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)

 

posted @   梵星语  阅读(117)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示