-
字典的初始:
-
why:
- 列表可以存储大量数据,但是数据之间的关联性不强
- 列表的查询速度比较慢
-
what:容器数据类型:dict
-
howL:
-
数据类型的分类(可变和不可变):
- 可变(不可哈希)的数据类型:list dict set
- 不可变(可哈希)的数据类型:str bool int tuple
字典:{} 括起来,以键值对形式存存储的容器型数据类型
- 键必须是不可变的数据类型 int str (bool tuple 几乎不用),而且是唯一的
- 值可以是任意数据类型 对象
- 字典3.5版本之前(包括3.5)是无序的
- 3.6会按照建立字典的顺序排列,学术上不认为是有序的
- 3.7以后都是有序的
- 字典缺点:以空间换时间
- 优点:查询速度快,存储关联性的数据
-
-
字典的创建方式:
- 方式1:dict = dict((('one,1'),('two',2),('three',3)))
- 方式2:dict = dict(one = 1,two = 2,three = 3)
- 方式3:dict = dict({'one':1,'two':2,'three':3})
-
方式4:dict = {'one':1,'two':2,'three':3}
-
-
字典的增删改查:
- 增:dict.setdefualt('键','值') 键如果存在 不会改变 并返回对应的值,直接增加 dict['键'] = 'value' 缺点如果存在会改变
- 删:pop('键','自定义返回值') 默认是返回删除的值 有第二个参数 即使找不到键也不会报错;del dict['键'] 如果不存在会报错;dict.clear() 清空
- 改: dict['键'] = '要改的值'
- 查:dict['k'] 按键去查 如果不存在会报错,不推荐使用,一般用get,dict.get('k','自定义返回值') ,找到返回value 没找到返回自定义
-
字典的创建方式:
# 面试会考 # 方式一: # dic = dict((('one', 1), ('two', 2), ('three', 3))) # print(dic) # {'one': 1, 'two': 2, 'three': 3} # 方式二: # dic = dict(one=1, two=2, three=3) # print(dic) # 方式三: # dic = dict({'one': 1, 'two': 2, 'three': 3}) # print(dic)
-
验证字典的合法性:
dic = {[1,2,3]: 'ajax', 1: 666} # 键要不可变的数据类型 print(dic) dic = {1: 'alex', 1: '张三', 2: '李四'} # 键要唯一 print(dic)