PYTHON小白笔记07

136 阅读4分钟

--此系列主要记录一些本人作为一个小白在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}')