字典的创建
- 创建一个非空字典
大括号扩住,逗号分隔每一项。每一项是键值对。键 : 值。键名一般是字符串类型。
stu1_dict = {'name' : '小明' , ' age' : 13 , 'sex' : '男' , 'height' : 160}
- 创建一个空字典
dict1 = {}
- 类创建
stu_xiaoming_dict = dict()
print(stu_xiaoming_dict)
>>> {}
stu_xiaoming_dict = dict(name='小明',age=10)
print(stu_xiaoming_dict)
>>> {'name' : '小明' , 'age' : 10}
字典的访问
- 通过键访问值。语法格式为 字典对象[键]
stu_dict = {'name' : '小明' , 'age' : 10}
print(stu_dict['name'])
>>> '小明'
找不到键名会报错,错误反应严重,适合严谨的情况。如
stu_dict = {'name' : '小明' , 'age' : 10}
print(stu_dict['sex'])
>>> Traceback (most recent call last):
File "<input>", line 1, in <module>
KeyError: 'sex'
- 只访问单独的健值。语法格式为 对象.get(键名 , 默认值=None)
stu_dict = {'name': '小明', 'age': 10}
print(stu_dict.get('name'))
>>> '小明'
默认值可以不传值,也可以传任意值
若不传值时访问的键名不存在,会返回默认值为None。
stu_dict = {'name': '小明', 'age': 10}
print(stu_dict.get('height'))
>>> None
若传值是访问的键名不存在,会返回传入的默认值
stu_dict = {'name': '小明', 'age': 10}
print(stu_dict.get('height', 0))
>>> 0
- 可能出现的错误。如访问的键名不存在就会出现报错。
stu_dict = {'name': '小明', 'age': 10}
print(stu_dict['height'])
>>> Traceback (most recent call last):
File "<input>", line 1, in <module>
KeyError: 'height'
字典中数据的添加
- 语法格式为 对象[新键] = 新值
stu_dict = {'name' : '小明' , 'age' : 10}
stu_dict['sex'] = 'male'
print(stu_dict)
- 声明一个非空字典时用变量去拼
方式一如下:
new_value = 160
stu_dict = {'name': '小明', 'age': 10, 'sex': 'male', 'height' : new_value}
print(stu_dict)
>>> {'name': '小明', 'age': 10, 'sex': 'male', 'height': 160}
方式二如下:
new_value = 160
stu_dict = dict(name='小明', age=10, 'sex': 'male', height=new_value)
print(stu_dict)
>>> {'name': '小明', 'age': 10, 'sex': 'male', 'height': 160}
字典中数据的删除
- pop() 语法格式为 字典.pop(键),删除键值对,删除成功后返回对应的值。
stu_dict.pop('name')
stu_dict = {'name':'小明','age':10}
print(stu_dict.pop('name'))
>>> '小明'
- del 语法格式为 del 字典对象[键名],删除该键名及其所对应的健值。
stu_dict = {'name':'小明','age':10}
del stu_dict['name']
print(stu_dict)
>>> {'age': 10}
- clear() 语法格式为 字典对象.clear(),清除所有内容,返回空字典。
stu_dict = {'name' : '小明' , 'age' : 10}
stu_dict.clear()
print(stu_dict)
>>> {}
- 把值更新成默认值或者None
stu_dict = {'name':'小明','age':10}
stu_dict['name'] = None
print(stu_dict)
>>> {'name': None, 'age': 10}
字典中数据的更新
- 语法格式为 字典对象[键名] = 新值
stu_dict = {'name' : '小明' , 'age' : 10}
stu_dict['name'] = ‘小红’
print(stu_dict)
>>> {'name': '小红', 'age': 10}
- 语法格式为 字典对象.update(key1=value1 , key2=value2)
stu_dict = {'name' : '小明' , 'age' : 10}
stu_dict.update(name='小李',age=12)
print(stu_dict)
>>> {'name' : '小李' , 'age' : 12}
其他常用的方法
- 所有项的键值。遍历
语法格式为 字典对象.values() 返回值所组成的列表。
stu_dict = {'name': '小明', 'age': 10}
for i in stu_dict.values():
print(i)
>>> dict_values(['小明' , 10])
- 所有项的键。遍历
语法格式为 字典对象.keys() 返回键所组成的列表
stu_dict = {'name': '小明', 'age': 10}
for i in stu_dict.keys():
print(i)
>>> dict_keys(['name' , 'age'])
- 获取所有项
语法格式为 字典对象.items()
stu_dict = {'name' : '小明' , 'age' : 10}
print(stu_dict)
>>> dict_items([('name', '小明'), ('age', 10)])
嵌套
列表,字典可以根据需求相互嵌套
- 列表套列表。二维数组
字典对象.items() 返回值类似于[[‘name’,‘小明’],[‘age’,10]]
二维数组,矩阵。[[1,2,3],[4,5,6],[7,8,9]] - 列表套字典
students = [{‘name’:‘小明’,‘age’:10,‘sex’:‘male’},
{‘name’:‘小红’,‘age’:12,‘sex’:‘female’},
{‘name’:‘小李’,‘age’:12,‘sex’:‘male’}
] - 字典套列表
接口上常见,比如天气预报接口
weather_info = {
‘success’:ok,
‘status_code’:200,
city_list:[
{‘name’:‘郑州’,‘temp’:‘28’,‘wet’:30},
{‘name’:‘郑州’,‘temp’:‘28’,‘wet’:30}
]
}