--此系列主要记录一些本人作为一个小白在python学习上遇到的一些重要知识点和易错点的总结,开坑,希望能够坚持到学有所成。
day07:数据容器05(字典)
一·定义格式以及特点
核心内容:
定义空字典方式1: 字典名 = {}
定义空字典方式2: 字典名 = dict()
定义非空字典: 字典名 = {key1:value1 , key2:value2 , ...}
# 1.定义空字典
dict1 = {}
print(dict1, type(dict1))
dict2 = dict()
print(dict2, type(dict2))
# 2.定义非空字典
stu_dict = {'张三': 99, '李四': 100, '王五': 88}
print(stu_dict)
意义:作为存储多个元素的python类型容器的其中之一
特点:可以容纳多个元素
是否可以混装: 只能按照键值对的形式存储
是否有下标索引: 无下标索引,通过key值可以索引到value
是否允许重复数据: key不允许重复存在,value值可以重复
是否支持元素修改操作: 支持修改(增加或删除元素等)
二.字典的键值对
核心内容:
字典的键: key 字典中的key可以是除了字典,列表,集合以外的任意类型(类似于原来的索引,但是索引只能是0开始的数字)
字典的值: value 字典中的value是任意类型 注意: 字典的嵌套本质就是值中可以是字典类型
根据key获取到对应的值: value = 字典名[key]
注意1: key不能重复,如果重复了后面的值会替换前面的值,但是value值可以重复
注意2: 如果访问的key不存在,就报错 KeyError: key
三.字典的增删改查操作
增加修改操作:
核心内容:
增加键值对: 字典名[新的key] = 新值
修改键值对: 字典名[旧的key] = 新值
注意: 增加和修改格式是一模一样的,主要取决于key是否存在
示例:
# 需求1: 定义空字典
stu_dict = {}
print(stu_dict) # {}
# 需求2: 往空字典中添加键值对 张三:18
stu_dict['张三'] = 18
print(stu_dict) # {'张三': 18}
# 注意: 添加新键值对,key一定不能是已存在的,否则就变成了修改
stu_dict['张三'] = 19
print(stu_dict) # {'张三': 19}
# 注意: 修改键值对,key一定要写对,否则就变成了新增!!!
stu_dict['张三 '] = 28
print(stu_dict) # {'张三': 19, '张三 ': 28}
查询删除操作:
核心内容:
获取字典中键值对个数: len(字典名)
获取字典中所有的key: 字典名.keys()
获取字典中所有的value: 字典名.values()
获取字典中所有的键值对: 字典名.items()
根据键key获取值value: 方式1: value=字典名[key]
方式2: value=字典名.get(key)
根据键key删除对应键值对: 方式1: 字典名.pop(key)
方式2: del 字典名[key]
注意: 字典名.pop(key)返回的是被删除的对应的值,一般不用,了解即可
清空字典中所有的键值对: 字典名.clear()
示例:
# 需求1: 定义非空字典存储一个学生信息
stu_dict = {'姓名': '张三', '年龄': 18, '身高': 178.8, '体重': 66.6}
print(stu_dict)
# 需求2: 查找字典中有几种学生信息(几个键值对)
print(len(stu_dict))
# 需求3: 查找字典中有哪几类的学生信息(获取所有的key)
print(stu_dict.keys())
# 需求4: 打印出学生的具体信息(获取所有的值)
print(stu_dict.values())
# 需求5: 查找所有的键值对
print(stu_dict.items())
# 需求6: 查找字典中学生的姓名是什么
print(stu_dict['姓名'])
print(stu_dict.get('姓名'))
# 需求7: 使用pop删除体重信息
stu_dict.pop('体重')
print(stu_dict)
# 需求8: 使用del 字典名[key]删除身高信息
del stu_dict['身高']
print(stu_dict)
# 需求9: 清空所有信息
stu_dict.clear()
print(stu_dict)
四.字典的遍历
核心内容:
# 定义字典存储学生信息
stu_dict = {'姓名': '张三', '年龄': 18, '身高': 178.8, '体重': 66.6}
print(stu_dict)
"""
需求:格式按照以下格式输出
学生姓名是:张三
学生年龄是:18岁
学生身高是:178.8cm
学生体重是:66.6公斤
"""
# 方式1 注意: 直接遍历字典,得到的值是key,根据key找值
for key in stu_dict:
value = stu_dict[key]
print(f'学生{key}是:{value}')
print('------------------------------')
# 方式2 通过keys也能遍历所有的key,,根据key找值
for key in stu_dict.keys():
value = stu_dict.get(key)
print(f'学生{key}是:{value}')
print('------------------------------')
# 方式3 遍历字典先获取键值对,然后使用元组拆包思想获取键和值
for k, v in stu_dict.items():
print(f'学生{k}是:{v}')