字典(dict)的常用操作
字典的特征
- 通过键而不是通过索引来读取
- 字典是任意对象的无序集合
- 字典是可变的,并且可以任意嵌套
- 字典中的键必须唯一
- 字典中的键必须不可变
字典的创建
zip()函数:用于将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的zip对象。如果想获取元组,可以将zip对象使用tuple()函数转换为元组,如果想获取列表,则可以使用list()函数将其转换为列表
# 空字典的创建
dic = {}
dic1 = dict()
# 有键值对的字典的创建
dic2 = {'name': '小红', 'age': '18', 'height': 170}
print(dic2)
# 通过映射函数创建字典
list1 = ['name', 'age', 'height']
list2 = ['小红', 18, 170]
dic3 = dict(zip(list1, list2))
print(dic3)
# 通过给定的参数创建字典
dic4 = dict(name='小红', age=18, height=170)
print(dic4)
# 使用fromkeys方法创建值为空的字典
dic5 = dict.fromkeys(list1)
print(dic5)
# 将元组作为字典的键,列表作为值进行创建字典
# 注意:不能使用列表作为字典的键
list3 = ('name', 'age', 'height')
list4 = ['小红', 18, 170]
dic6 = {list3: list4}
print(dic6)
# 输出结果
{'name': '小红', 'age': '18', 'height': 170}
{'name': '小红', 'age': 18, 'height': 170}
{'name': '小红', 'age': 18, 'height': 170}
{'name': None, 'age': None, 'height': None}
{('name', 'age', 'height'): ['小红', 18, 170]}
遍历字典元素(items)
dic = {'name': '小红', 'age': '18', 'height': 170}
# 使用item方法获取键值对
print(dic.items())
# 遍历键值对
for k, v in dic.items():
print(k, v)
# 输出结果
dict_items([('name', '小红'), ('age', '18'), ('height', 170)])
name 小红
age 18
height 170
字典的增、删、改、查操作
增,改(updata)
dic = {'name': '小红', 'age': '18', 'height': 170}
# 字典的修改操作,不存在此键则新增,存在则进行修改
dic['爱好'] = '玩游戏'
print(dic)
# 增加多个键值对
dic.update({'性别': '女', '星座': '水瓶座'})
print(dic)
# 输出结果
{'name': '小红', 'age': '18', 'height': 170, '爱好': '玩游戏'}
{'name': '小红', 'age': '18', 'height': 170, '爱好': '玩游戏', '性别': '女', '星座': '水瓶座'}
删(del)
dic = {'name': '小红', 'age': '18', 'height': 170, '爱好': '玩游戏', '性别': '女', '星座': '水瓶座'}
# 使用pop方法删除字典的键值对
dic.pop('爱好')
print(dic)
# 使用del方法删除其中的元素
del dic['星座']
print(dic)
# 使用clear删除字典的元素,将其变为空字典
dic.clear()
# 输出结果
{'name': '小红', 'age': '18', 'height': 170, '性别': '女', '星座': '水瓶座'}
{'name': '小红', 'age': '18', 'height': 170, '性别': '女'}
查
dic = {'name': '小红', 'age': '18', 'height': 170, '爱好': '玩游戏', '性别': '女', '星座': '水瓶座'}
# 通过指定的key去找value值,没有查找到时会出现报错
dic1 = dic['name']
print(dic1)
# 在实际开发过程中,我们并不知道字典中是否存在此键,所以我们应该避免异常做出判断
print(dic["like"] if 'like' in dic else '字典中没有这个键')
# 通过key去找对应的value值,字典中无查找的key时会显示结果为None
dic.get('性别')
# 我们还可以通过get方法来避免报错
# 第一个参数传我们需要查找的key,第二个参数传默认值,如果找不到此key,则返回默认值,默认的默认值是None
print(dic.get('like', '字典中没有这个键'))
# 查找字典中所有的key
dic.keys()
# 查找字典中所有的value
dic.values()
# 将字典转换为列表显示
print(list(dic.keys()))
# 查找所有的键值对
dic.items()
# 输出结果
小红
字典中没有这个键
字典中没有这个键
['name', 'age', 'height', '爱好', '性别', '星座']
dict_items([('name', '小红'), ('age', '18'), ('height', 170), ('爱好', '玩游戏'), ('性别', '女'), ('星座', '水瓶座')])