字典
1.字典应用场景
字典里面的数据以键值对形式出现,字典数据和数据顺序没有关系,即字典不支持下标,后期无论数据怎样变化,只需按照对应的键的名字查找数据即可。
2.创建字典的语法
2.1 字典 特点
- 符号为大括号
- 数据以键值对形式出现
- 各个键值对间用逗号隔开
2.2 字典 创建
# {} 键值对 各个键值对用逗号隔开
# 1.有数据的字典 name的值是Tom, age的值是20,gender的值是男
dict1 = {'name': 'Tom', 'age': '20', 'gender': '男'}
print(dict1)
print(type(dict1))
# 2.创建空字典
dict2 = {} # 方法1
print(type(dict2))
dict3 = dict() # 方法2
print(type(dict3))
3.字典常见操作
3.1 增
dict1 = {'name': 'Tom', 'age': '20', 'gender': '男'}
# 新增写法:字典序列[key] = 值
# 字典为可变类型
# id 的值为110
dict1['id'] = 110
print(dict1) # 结果 {'name': 'Tom', 'age': '20', 'gender': '男', 'id': 110}
dict1['name'] = 'Rose'
print(dict1) # 结果 {'name': 'Rose', 'age': '20', 'gender': '男', 'id': 110}
3.2 删
dict1 = {'name': 'Tom', 'age': '20', 'gender': '男'}
# del 删除字典 或 指定的键值对
# del(dict1)
# print(dict1) # 报错,说明已经删除
# del dict1['name']
# print(dict1) # 结果 {'age': '20', 'gender': '男'}
# del dict1['names'] # 报错,无此key值
# print(dict1)
# clear() 清空
dict1.clear()
print(dict1) # 结果 {}
3.3 改
dict1 = {'name': 'Tom', 'age': '20', 'gender': '男'}
# 改 Tom 为 Lily
# dict1['name'] = 'Lily'
# print(dict1) # {'name': 'Lily', 'age': '20', 'gender': '男'}
# 字典的新增和修改
# 新增,key为新的键值对
# 修改,key为原有键值对
3.4 查
dict1 = {'name': 'Tom', 'age': '20', 'gender': '男'}
# 1. [key]
# print(dict1['name']) # 返回对应的值 key存在
# print(dict1['names']) # 报错
# 2.函数
# 2.1 get()
# print(dict1.get('name')) # 若key存在,返回对应值
# print(dict1.get('names')) # 若key不存在,返回参数2,没有参数2,返回None
# print(dict1.get('names', 'Lily')) # 若key不存在,返回参数2 Lily
# 2.2 keys() 查找字典的所有的key ,返回可迭代对象
# print(dict1.keys()) # 结果 dict_keys(['name', 'age', 'gender'])
# 2.3 values() 查找字典的所有的value值,返回可迭代对象
# print(dict1.values()) # 结果 dict_values(['Tom', '20', '男'])
# 2.4 items() 查找字典中所有的键值对,返回可迭代对象,里面的数据是元组,元组数据1是字典的key,元组数据2是字典Key对应的值
print(dict1.items()) # 结果 dict_items([('name', 'Tom'), ('age', '20'), ('gender', '男')])
4. 字典的循环遍历
4.1 key
dict1 = {'name': 'Tom', 'age': '20', 'gender': '男'}
for key in dict1.keys():
print(key)
4.2 value
dict1 = {'name': 'Tom', 'age': '20', 'gender': '男'}
for value in dict1.values():
print(value)
4.3 元素
dict1 = {'name': 'Tom', 'age': '20', 'gender': '男'}
for item in dict1.items():
print(item)
"""
结果
('name', 'Tom')
('age', '20')
('gender', '男')
"""
4.4 键值对(拆包)
dict1 = {'name': 'Tom', 'age': '20', 'gender': '男'}
# xx.items():返回可迭代对象,内部是元组,元组有2个数据
# 元组数据1是字典的key,元组数据2是字典的value
for key, value in dict1.items():
print(f'{key} = {value}')
"""
结果
name = Tom
age = 20
gender = 男
"""