L4.二.字典md

字典
===
## 引题
列表表达一组概念,例如student_name_list = ['小明','小红','小青']
在表达一个对象不同属性 例如name'小明' age 10 sex '男' height 160 不太擅长

## 列表VS字典
很多时候可以通用
列表:每一项都是一类东西,(次要)项目数不多。(次要)占用资源较少,适合用列表。有下标,有顺序的。
字典:一个对象事务的不同属性,(次要)项数比较多,(次要)占用资源较多。适合字典。依赖键名访问,无序的


## 创建
大括号扩住,逗号分隔项,每一项是键值对 键:值, 键名一般是字符串类型
1.创建了一个非空字典
stul_dict = {'name':'小明','age':10, 'sex':'男','height':160}
2.创建一个空字典
dictl = {}
3.类创建
stu_xiaoming_dict = dict()
stu_xiaoming_dict → {}

stu_xiaoming_dict = dict(name'小明',age = 10)
stu_xiaoming_dict → {'name':'小明','age':10}

## 访问
通过键访问值
stu_dict = {'name':'小明','age':10}
stu_dict['name'] → '小明'
stu_dict['name'] → '小明'
找不到键名会报错,错误反应严重,适合严谨的情况。
2. 对象.get(键名)
stu_dict.get('name') → '小明'
stu_dict.get('height',0) → 0
找不到键名不会报错,会返回默认值,适合事先知道数据可能抓取不到,需要赋默认值情况,不太严谨
3. 可能的错误:
stu_dict['height'] 报错键错误 KeyError:'height'
##其它常用方法
1.所有项的值,遍历(不太常用)
字典对象.values() 返回值组成的列表
stu_dict = {'name':'小明','age':10}
stu_dict.values() → dict_values(['小明',10])
2.所有项的键
字典的对象.keys() 返回键组成的列表
stu_dict.keys() → dict_keys(['name','age'])
3. 获取所有项
字典对象.items() → [('name','小明'),('age',10)]

##添加
1.对象[新建] = 新值
stu_dict['sex'] = 'male'
2.声明一个非空字典时用变量去拼
new_value = 160
{'name':'小明','age':10,'sex':'male','height':new_value}
stu_dict = dict(name = '小明',age = 10,height = new_value)


## 更新
1.(常用)字典对象[键名] = 新值
stu_dict['name'] = '小红'
stu_dict → {'name':'小红','age':10}
2.字典对象.update(key1=value1,key2=value2,...)
stu_dict.update(name = '小李',age = 12)
stu_dict → {'name':'小李','age':12}
(了解:内存原理:键名映射指向了新值,哈希表,字典查询效率比较高)

## 删除(不太常用)
1.把值更新成默认值None
stu_dict = {'name':'小明','age':10}
stu_dict['name'] = None
2.字典对象.pop(键),删除键值对,删除成功后返回键值对应的值
stu_dict.pop('name') → '小明'
stu_dict → {'age':10}
3.del 关键字
del_stu_dict['name']


## 嵌套
列表,字典可以根据需求相互嵌套
1.列表套列表
字典对象.items() 返回值类似与[['name','小明'],['age',10]]
二维数组、矩阵。 [[1,2,3],[4,5,6],[7,8,9]]
2.列表套字典
students = [{'name':'小明','age':10},{'name':'小红','age':12}
{'name':'小明','age':10},{'name':'小红','age':12}
{'name':'小明','age':10},{'name':'小红','age':12}
]
3. 字典套列表
接口上见,比如天气预报接口
weather_info = {
'success': ok,
'status_code':200,
city_list:[{'name':'郑州','temp':'28','wet':30},
{'name':'洛阳','temp':'25','wet':40}
]}

猜你喜欢

转载自www.cnblogs.com/psy0508/p/9974110.html