字典及相关操作
1,字典和列表的选择
需要同时保存多个数据的时候,多个数据意义相同不需要区分就使用列表,反之使用字典。
2,认识字典
-
是容器型数据类型:将{}作为容器标志,里面多个键值对用逗号隔开。
-
键值对: 键:值
-
特点:
①空字典:dict1 = {}。
②字典中的元素只能是键值对。
③字典是可变的(支持增删改);字典是无序的(不支持下标,元素顺序不影响结果)。
- 对元素的要求:字典的元素是键值对
①键的要求:键必须是不可变的数据类型(数字,字符串,布尔,元组);键是唯一的。
②值的要求:没有要求。
3,字典操作
- 查 ---- 获取字典的值
获取单个(一次获取一个值)
语法1:
字典[键] ---- 获取字典中指定键对应的值
语法2:
字典.get(键) - 获取字典中指定键对应的值
字典.get(键,默认值) - 当键对应值不存在时返回默认值
区别:当键不存在时语法1会报错,而语法2会返回空(None)。
- 遍历
语法:
for 变量 in 字典:
pass
4,增/改
- 字典[键] = 值 ---- 修改添加
如果键存在就修改指定键的值,如果不存在就添加键值对。
- 字典.setdefault(键, 值) ---- 添加
添加键值对,如果键存在且有值就保留原来的值,如果没有就添加新的键值对。
- 删 ---- 删除键值对
del 字典[键]:删除指定键对应的键值对。
字典.pop(键):取出指定键对应分值。
当键不存在时会报错。
5,字典相关操作函数和方法
-
字典不支持+, *, >, <, >=, <=,只支持:==, !=。
-
in 和 not in
键 in 字典
判断字典中是否存在指定键。
- 相关函数:len,dict
①len(字典):获取字典中键值对的个数。
②dict(数据):将指定数据转换成字典。
数据的要求:数据本生是序列,序列中的元素必须都是有且只有两个元素(第一个数据为键,第二个数据为值)的小序列并且第一个元素是不可变数据。
- 相关方法
- 字典.clear()
- 字典.copy()
- 字典.items() ---- 同时获取键和值,获取的键值对返回为一个元组放入一个列表。
- 字典.keys() ---- 获取所有的键,返回为一个序列。
- 字典.values() ---- 获取所有值,返回为一个序列。
- 字典.update(序列) ---- 将序列中的元素全部添加到字典中,序列必须是可转换成字典的序列。
6,字典推导式
{
表达式1:表达式2 for 变量 in 序列}
{
表达式1:表达式2 for 变量 in 序列 if 条件语句}
练习
1,定义一个变量保存一个学生的信息,学生信心中包括:姓名、年龄、成绩(单科)、电话、性别。
student = {
"name": "黄祺",
"age": 21,
"score": 80,
"tel": 654567887656,
"sex": "男"
}
print(student)
2,定义一个列表,在列表中保存6个学生的信息(学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明) )
list1 = [
{
"name": "张三", "age": 17, "score": 59, "tel": "556547655", "sex": "不明"},
{
"name": "刘晋", "age": 22, "score": 90, "tel": "136547658", "sex