1. 前言
字典,字典里面的数据是以“键值对”形式出现,字典数据和数据顺序没有关系,即字典不支持下标,后期无论数据如何变化,只需要按照对应的键的名字查找数据即可。字典可修改,字典为可变类型。
2. 创建方法
# 直接创建
dict1 = {'name' : 'dave', 'age' : 18, 'nation' : 'China'}
# 关键字创建
dict3 = dict({'name' : 'dave', 'age' : 18, 'nation' : 'China'})
# 空字典
dict2 = {}
dict3 = dict()
3. 常见操作
字典为可变类型,支持修改,常见操作为增、删、查、改
3.1 增加 或 修改
-
语法:如果key存在则修改这个key对应的值;如果key不存在则新增此键值对。
字典序列[key] = 键值
-
实例:
dict1 = {'name' : 'dave', 'age' : 18, 'nation' : 'China'} dict1['name'] = 'Jack' #{'name': 'Jack', 'age': 18, 'nation': 'China'} print(dict1) dict1['gender'] = '男' # {'name': 'Jack', 'age': 18, 'nation': 'China', 'gender': '男'}
3.2 删除
-
del() / del:删除字典或删除字典中指定键值对。
-
clear():清空字典
-
实例:
dict1 = {'name': 'Jack', 'age': 18, 'nation': 'China', 'gender': '男'} del dict1['gender'] # {'name': 'Jack', 'age': 18, 'nation': 'China'} print(dict1) dict1.clear() # {} print(dict1)
3.3 查找
-
key值查找:如果当前查找的key存在,则返回对应的值;否则则报错。
dict1 = {'name' : 'dave', 'age' : 18, 'nation' : 'China'} print(dict1['age']) # 18
-
get()
-
语法:
- 如果当前查找的key不存在则返回第二个参数(默认值),如果省略第二个参数,则返回None。
字典序列.get(key, 默认值)
-
实例:
dict1 = {'name' : 'dave', 'age' : 18, 'nation' : 'China'} print(dict1.get('name')) # dave print(dict1.get('id', 'Error')) # Error print(dict1.get('gender')) # None
-
-
keys(): 查找字典所有的键。
dict1 = {'name' : 'dave', 'age' : 18, 'nation' : 'China'} print(dict1.keys()) # dict_keys(['name', 'age', 'nation'])
-
values() : 查找字典所有的值
dict1 = {'name' : 'dave', 'age' : 18, 'nation' : 'China'} print(dict1.values()) # dict_values(['dave', 18, 'China'])
4. 字典的循环遍历
-
遍历字典的key:
for key in dict1.keys(): print(key) # 输出: """ name age nation """
-
遍历字典的value:
dict1 = {'name' : 'dave', 'age' : 18, 'nation' : 'China'} for val in dict1.values(): print(val) # 输出: """ dave 18 China """
-
遍历字典的元素:
dict1 = {'name' : 'dave', 'age' : 18, 'nation' : 'China'} for item in dict1.items(): print(item) """ 输出: ('name', 'dave') ('age', 18) ('nation', 'China') """
-
遍历字典的键值对:
dict1 = {'name' : 'dave', 'age' : 18, 'nation' : 'China'} for key, val in dict1.items(): print(f'{key} = {val}') """ 输出: name = dave age = 18 nation = China """