字典
一、什么是字典(dict)?
-
定义:字典是容器型数据类型,{}为字典标志,里面多个键值对用逗号隔开:{键1:值1,键2:值2,。。。}
-
特性:
- 可变的(支持增删改)
- 字典是无序的 (无下标操作,顺序不影响结果)
-
对key-value键值对的要求:
- 键:
- 必须是不可变类型的数据(一般用字符串)(数字,字符串,布尔都是不可变,可变的只有列表和字典)
- 键是唯一的
- 值:
- 没有要求
- 键:
-
拓展:什么时候用字典,什么时候用列表?
- 字典:保存的数据意义相同时
- 列表:保存的数据意义不相同时
二、字典的增删改查
1. 查找元素
- 查单个(字典最常用操作):
- 字典[键]
- 字典.get(键,默认值) / 字典.get(键)
- 两者区别:当键不存在时,字典[键]会报错;字典.get(键)会返回后面的值,默认是None
- 遍历
-
for i in dict:
循环体;- 这里循环取到的是一个个的键
-
for i,j in dict.items():
循环体;- 返回每一个键和对应的值
-
2.修改元素
字典[键] = 值
3.增加元素
-
字典[键] = 值 , 不存在就会直接添加,有这个键进行修改
-
字典.setdefault(键,值), 不存在直接添加,存在就不改变
4.删除元素
-
del 字典[键] - 删除键值对
-
字典.pop(键) - 拿出键值对的值,值拿走,键也会消失
三、字典的相关操作
-
运算符:字典只支持等于和in、not in(不支持加减比较)
- 字典中的in判断的是键是否存在
- 键 in 字典
-
len(): 获取字典中键值对的个数
-
dict():
- 哪些能通过dict转成字典?
- 数据本身是个序列
- 序列中的元素必须都是,有且只有两个元素的小序列
- 小序列第一个必须是不可变的数据
eg:dict1 = dict([(‘name’,‘xiaoming’),(‘age’,18)])
- 哪些能通过dict转成字典?
-
相关结论:直接对字典操作,只能得到或操作字典的所有的键,想操作值只能通过键去索引
- 所以,list(字典)返回的是字典所有的键
四、字典相关方法
- 字典.clear()
- 字典.copy()
- 字典.keys()、字典.values()、字典.items():返回键序列,值序列、多个键值对元组组成的序列