⑥初识python--python的dict字典与set集合
python的字典与集合
一、字典的定义与访问
1、为什么需要字典
思考1:如果有多个数据,例如:'Tom','男',20,如何快速存储?
答:列表,元组
list1 = ['Tom','男',20]
思考2:如何查找到数据"Tom"?
答:查找到下标为0的数据即可。
list1[0]
思考3:如果将来顺序发生变化,如下所示,还能通过list1[0]
访问到数据吗?
list1 = ['男',20,'Tom']
答:不能,数据'Tom'的此时下标为2
思考4,数据顺序发生变化,每个数据下标也会随之变化,如何保证数据顺序变化前后能使用同一标准查找数据呢?
答:字典,字典里面数据以键值对形式出现,字典数据顺序与数据顺序无关,即字典不支持下标,后期无论数据如何变化,只需要按照对应的键的名字查找数据即可。
字典类型:很适合用来保存一个事物的信息。如一个人的信息、一本书的信息、一个商品的信息。
一个人:性别,年龄,姓名
一个书:标题,价格,出版社
2、字典的定义与访问
基本语法:
字典名称 = {key1:Value1, key2:value2, key3:value3}
注:字典中没有索引下标,其通过key:value键值对来体现键(等价索引下标)与值的关系
key:必须唯一且没有顺序要求,可以是字符串类型、数值类型和元组类型(少)
value:代表元素中具体的值
# 1、定义一个空字典
dict1 = {}
dict2 = dict()
# 2、定义一个有数据的字典
dict3 = {'name': 'Tom', 'sex': '男', 'age': 20}
# 3、通过key的值来访问value的具体值
print(dict3)
print(dict3['name'])
print(dict3['age'])
3、常见问题答疑
-
字典是不能进行切片操作的,不被允许,因为没有索引下标
-
创建一个有数据的字典,只能通过{ } 创建,不能通过dict()创建
-
无论是key或者value,如果是字符串类型则必须添加引号,数值类型,则不需要添加引号。
二、字典的相关操作
1、字典的新增与修改操作
基本语法:字典的新增与修改语法一样
字典名称[key] = value
- 如果字典中没有这个key,则实现添加操作
- 如果字典中已经有这个key,则实现修改操作
# 定义一个person的空字典
person = dict()
# 实现字典的新增操作
person['name'] = 'Tom'
person['age'] = 20
person['sex'] = '男'
print(person)
# 字典的修改
person['age'] = 21
print(person)
2、字典的删除操作
基本语法:
del 字典名称[key]
- 根据字典中的key ,删除满足条件的 key : value 键值对
# 定义一个有数据的字典
student1 = {'name': '莫航', 'age': 20, 'sex': 'male'}
# 删除student1中的age所对应的键值对
del student1['age']
print(student1)
3、字典中的查操作
"""
① 获取字典中的某个元素,字典名称[key],代表访问指定的元素
② 字典也支持直接打印输出
③ 字典也支持for循环打印输出,但是注意,只有字典中key的值可以遍历出来(默认)
"""
student1 = {'name': 'Jack', 'age': 20, 'sex': 'male'}
# ① 通过字典中的key访问指定元素
print(student1['name'])
# ② 直接打印输出
print(student1)
# ③ for循环遍历字典中的key
for key in student1:
print(key)
- for循环默认遍历字典中的key
python字典中还提供keys()、values()、items()函数来获取字典的key,value以及键值对(key:value)
编号 | 函数 | 作用 |
---|---|---|
1 | keys() | 以列表返回一个字典所有的键 |
2 | values() | 以列表返回一个字典所有的值 |
3 | items() | 以列表返回可遍历的(键,值)元组数组 |
- 以上三个方法很少单独使用,通常配合for循环进行遍历操作
student1 = {'name': 'Jack', 'age': 20, 'sex': 'male'}
print(student1.keys())
print(student1.values())
print(student1.items())
# 通过keys()方法遍历字典中的key
for key in student1.keys():
print(key)
print()
# 通过values()方法遍历字典中的value
for value in student1.values():
print(value)
print()
# 通过items()方法遍历字典中的键值对
for key, value in student1.items():
print(f'{key}:{value}')
4、字典与列表结合的小案例
① 列表适合同时保存多个数据;
② 字典适合保存一个事物的信息,如一本书,一个人或一件商品
③ 那么列表与字典的结合可以同时保存多个事物的信息:多本书,多个人,多件商品
学生信息管理系统的案例:
students = []
student1 = {'name': 'Tom', 'age': 19, "sex": 'male'}
student2 = {'name': 'Harry', 'age': 18, "sex": 'female'}
students.append(student1)
students.append(student2)
# 相当于students = [student1, student2]
print(students)
# 比如现在要删除名字为{name}的学生信息
name = input('请您输入要删除的学生信息:')
for i in students: # 遍历得到的i为一个个字典
if i['name'] == name:
students.remove(i)
print(f'您已经成功删除{name}的学生信息!')
print(students)
break
else:
print('对不起!没找到名字为%s的学生!' % name)
三、集合(set)
1、什么是集合
集合(set)是一个无序的不重复的数据集合。
- 天生去重(自动返回一个不重复的序列)
- 无序
2、集合的定义
在python中,我们可以使用{}或set()方法定义一个集合,如果你定义的集合是一个空集合,则只能使用set()方法,{}默认是空字典。
# 定义一个空集合
set1 = set()
print(type(set1))
# 定义一个有数据的集合
set2 = {10, 20, 20, 30, 40}
print(set2) # 天生去重
# set()方法实现数据类型的转换
set3 = set('abcd')
print(set3)
3、集合的访问
'''
集合类型是无序的,没有索引下标,有两种访问方式
① 直接打印
② 通过for循环进行遍历(不能使用while循环,因为没有索引下标)
'''
set2 = {10, 20, 30, 30}
print(set2)
for i in set2:
print(i)
四、集合的相关操作方法
1、增加方法
add():向集合中添加不重复的数据
# 定义一个空集合
set1 = set()
# 使用add()方法向集合中添加不重复的数据
set1.add(10)
set1.add(20)
set1.add(20)
print(set1)
2、删除方法
remove():根据值删除指定元素
pop(): 随机删除集合中某个指定的元素,删除后,返回被删除的那个元素
set2 = {10, 20, 30, 40}
set2.remove(10)
print(set2)
print(set2.pop()) # 返回随机删除元素的值
3、查询方法
if 元素 in set:返回bool类型(True or False)
if 'Jack' in set3:
print("'Jack' exist in the set3")
else:
print("'Jack' not exist in the set3")
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具