字典
字典
数据是以键值对的形式存储的,不支持下标。无论数据如何变化,都可以按对应键的名字查找数据
特点:
- 符号为大括号
- 数据以键值对形式存储
- 每个键值对之间用逗号隔开
# 有数据的字典
dict1 = {'name': 'TOM', 'age': 20, 'gender': '男'}
# 空字典
dict2 = {}
dict3 = dict()
常见操作
增与修改
写法:字典序列[key] = 值。如果key存在则修改这个key对应的值,否则则新增此键值对
dict1 = {'name': 'TOM', 'age': 20, 'gender': '男'}
# 新增
dict1['id'] = 110 # {'name': 'TOM', 'age': 20, 'gender': '男', 'id': 110}
# 修改
dict1['name'] = 'Rose' # {'name': 'Rose', 'age': 20, 'gender': '男', 'id': 110}
删除
- del / del(): 删除字典或字典中指定的键值对
- clear(): 清空字典
dict1 = {'name': 'TOM', 'age': 20, 'gender': '男'}
# 删除字典
del(dict1)
# 删除键值对name
del dict1['name'] # key必须存在,不然报错
# 清空
dict1.clear()
查找
- 按key值查找, key不存在,则报错
dict1 = {'name': 'TOM', 'age': 20, 'gender': '男'}
print("dict1['name']") # TOM
- get(): 得到key对应的值,如果key不存在,则返回第二个参数。如果省略了第二个参数,则返回None
字典序列.get(key, 默认值)
dict1 = {'name': 'TOM', 'age': 20, 'gender': '男'}
print(dict1.get('name')) # Tom
print(dict1.get('id', 110)) # id不存在,则返回110
print(dict1.get('id')) # None
- keys(): 查找字典中所有中的key, 返回可迭代对象
dict1 = {'name': 'TOM', 'age': 20, 'gender': '男'}
print(dict1.keys()) # dict_keys(['name', 'age', 'gender'])
- values(): 查找字典中所有中的值, 返回可迭代对象
dict1 = {'name': 'TOM', 'age': 20, 'gender': '男'}
print(dict1.values()) # dict_values(['TOM', 20, '男'])
- items(): 查找所有键值对,返回可迭代对象,里面的数据是元组,元组数据1是字典的key, 元组数据2是该key对应的值
dict1 = {'name': 'TOM', 'age': 20, 'gender': '男'}
print(dict1.items()) # dict_items([('name', 'TOM'), ('age', 20), ('agender', '男')])
遍历
遍历字典的key
dict1 = {'name': 'TOM', 'age': 20, 'gender': '男'}
for key in dict1.keys():
print(key)
遍历字段的value
dict1 = {'name': 'TOM', 'age': 20, 'gender': '男'}
for value in dict1,values():
print(value)
遍历字典的元素
dict1 = {'name': 'TOM', 'age': 20, 'gender': '男'}
for item in dict1.items():
print(item) # ('name', 'TOM') ......
遍历字典的键值对
dict1 = {'name': 'TOM', 'age': 20, 'gender': '男'}
for key, value in dict1.items(): # 遍历的时候拆包
print(f'{key} = {value}')