1 字典
dictionary (字典) 是 除列表以外 Python 之中 最灵活 的数据类型
字典同样可以用来 存储多个数据
- 通常用于存储 描述一个 物体 的相关信息
- 和列表的区别
1.列表 是 有序 的对象集合
2.字典 是 无序 的对象集合字典 - 用 {} 定义字典
- 使用 键值对 存储数据,
1.键值对之间使用 , 分隔
2.键 key 是下标
3.值value 是数据
键 和 值 之间使用 : 分隔
键必须是唯一的
值可以取任何数据类型,但键只能使用字符串、数字或 元组
xiaoming = {"name": "小明",
"age": 18,
"gender": True,
"height": 1.75}
print(type(xiaoming))
<class 'dict'>
2 常用操作
2.1 字典增加
2.1.1 键值对增加与修改
字典是可变数据类型
如果key存在修改value值,如果key不存在则添加键值对
字典[key] = value
xiaoming = {"name": "小明","age": 18,"gender": True,"height": 1.75}
xiaoming['id'] = 20
print(xiaoming) # {'name': '小明', 'age': 18, 'gender': True, 'height': 1.75, 'id': 20}
2.1.2 setdefault(key,value)
如果key存在不会修改数据,如果key不存在则添加键值对
字典.setdefault(key,value)
xiaoming = {"name": "小明","age": 18,"gender": True,"height": 1.75}
xiaoming.setdefault('id',120)
xiaoming.setdefault('taller',180)
print(xiaoming) # {'name': '小明', 'age': 18, 'gender': True, 'height': 1.75, 'id': 20, 'taller': 180}
2.2 删除
2.2.1 del()函数
del(字典)
del 字典[key]
xiaoming = {"name": "小明","age": 18,"gender": True,"height": 1.75}
# del(xiaoming)
# print(xiaoming) # 报错字典已被删除
del xiaoming["name"]
print(xiaoming) # {'age': 18, 'gender': True, 'height': 1.75} name键值对被删除
2.2.2 clear()函数
清理字典变为空字典
字典.clear()
xiaoming = {"name": "小明","age": 18,"gender": True,"height": 1.75}
xiaoming.clear()
print(xiaoming) # {} 空字典
2.3 字典查找
2.3.1 通过key查找
如果key值存在返回对应的value值,不存在则报错
xiaoming = {"name": "小明","age": 18,"gender": True,"height": 1.75}
name = xiaoming["name"]
print(name) # 小明
# name = xiaoming["生日"]
# print(name) # 报错 不存在key值生日
2.3.2 get()函数
如果当前查找的key值不存在返回默认值,默认值缺省时返魂None
字典.get(key,默认值)
xiaoming = {"name": "小明","age": 18,"gender": True,"height": 1.75}
print(xiaoming.get('name',25)) # 小明
print(xiaoming.get('id',25)) # 25
2.3.3 keys()函数
返回所有key列表
dict.keys()
xiaoming = {"name": "小明","age": 18,"gender": True,"height": 1.75}
print(xiaoming.keys()) # dict_keys(['name', 'age', 'gender', 'height'])
2.3.4 values()函数
返回所有value值的列表
字典.values()
xiaoming = {"name": "小明","age": 18,"gender": True,"height": 1.75}
print(xiaoming.values()) # dict_values(['小明', 18, True, 1.75])
2.3.5 items()函数
返回(key,value) 元组
dict.items() 所有(key,value)元组列表
xiaoming = {"name": "小明","age": 18,"gender": True,"height": 1.75}
print(xiaoming.items()) # dict_items([('name', '小明'), ('age', 18), ('gender', True), ('height', 1.75)])
2.4 遍历字典
遍历字典中的key:
xiaoming = {"name": "小明","age": 18,"gender": True,"height": 1.75}
for i in xiaoming.keys():
print(i,end='\t') # name age gender height
遍历字典中value:
xiaoming = {"name": "小明","age": 18,"gender": True,"height": 1.75}
for j in xiaoming.values():
print(j,end='\t') # 小明 18 True 1.75
遍历字典中元素(键值对):
xiaoming = {"name": "小明","age": 18,"gender": True,"height": 1.75}
for k in xiaoming.items():
print(k,end='\t') #('name', '小明') ('age', 18) ('gender', True) ('height', 1.75)
遍历键值对时进行拆包
'''
name 小明
age 18
gender True
height 1.75
'''
xiaoming = {"name": "小明","age": 18,"gender": True,"height": 1.75}
print('')
for g in xiaoming.items():
print(g[0],end='\t')
print(g[1])
第二种写法,将返回值分别返回key和value
'''
name = 小明
age = 18
gender = True
height = 1.75
'''
for key,value in xiaoming.items():
print(f'{key} = {value}')