4.2.3 字典元素的增删改
1️⃣字典元素的增:我们可以直接设置我们的目标键和目标值,代码如下:
# 博主:辰chen # 博客地址:https://chen-ac.blog.csdn.net/ # 开发时间:2021/12/12 22:13 # 欢迎大家关注AIoT相关博客~ a = dict(name='张三', age=18, height=177, weight='70kg') print(a) a['location'] = 'China' print('location' in a) print(a)
对于增减字典元素,我们还可以使用 update() 方法,可以直接将另一个字典的“键:值”全部添加到当前字典中,如果两个字典中存在相同的键(key),那么会以另一个字典中的“值”为准,即修改当前字典的“值”,具体代码如下
# 博主:辰chen # 博客地址:https://chen-ac.blog.csdn.net/ # 开发时间:2021/12/12 22:13 # 欢迎大家关注AIoT相关博客~ a = dict(name='张三', age=18, height=177, weight='70kg') print(a) a.update({'location':'China', 'sex':'male'}) print(a) # 注意,此时字典a中已经有名为 sex 的键了,这时再执行 update 操作其实是修改 a.update({'sex':'female'}) print(a)
2️⃣字典元素的删除:删除字典元素,我们在这里介绍两种方法:popitem(),pop(),下面用代码去讲解:
# 博主:辰chen # 博客地址:https://chen-ac.blog.csdn.net/ # 开发时间:2021/12/12 22:35 # 欢迎大家关注AIoT相关博客~ a = {'name': '张三', 'age': 18, 'height': 177, 'weight': '70kg'} a.popitem() # 删除字典中的最后一个元素,字典为空则显示 KeyError print(a) a.pop('age') # pop通过传入我们想要删除的键值对的键(key)来删除键值对 print(a)
3️⃣字典元素的改:和增的操作一样,我们可以直接修改我们的目标键所对应的值,代码如下:
# 博主:辰chen # 博客地址:https://chen-ac.blog.csdn.net/ # 开发时间:2021/12/12 22:23 # 欢迎大家关注AIoT相关博客~ a = dict(name='张三', age=18, height=177, weight='70kg') print(a, 'weight' in a) a['weight'] = '65kg' print(a)
*4.2.4 字典常用函数(方法)汇总
注:本小节带 *,不需要进行学习,可以简单进行了解
⛲️ 本小节可以说还是比较重要的,但为什么本小节打 * 了呢?这是因为我们没必要去记忆这些函数/方法(期末考试除外),在我们需要的时候我们只需要来本小节去查找用法即可
函数(方法) | 用法介绍 |
dict() | 将一连串的对象转为字典 |
del | 删除字典 |
values() | 遍历字典的值(value),默认遍历字典的键(key) |
items() | 遍历字典的元素【键值对】(key:values),默认遍历字典的键(key) |
get(key) | 返回我们指定的键(key)所对应的值(value),不存在键(key)则返回 None |
update(dict) | 将令一个字典中的全部元素全部添加至目标字典 |
popitem() | 删除字典中的最后一个元素,字典为空显示 KeyError |
pop(key) | 删除键(key)所对应的键值对 |
4.2.5 字典生成式
🚩在介绍字典生成式之前,我们先介绍一个函数 zip(),zip() 可以将多个可迭代对象(如列表)中对应位置的元素压缩在一起,返回一个可迭代的 zip 对象,如果传入的两个可迭代对象长度不相同,则返回的结果以短的为准,下面用代码去演示:
# 博主:辰chen # 博客地址:https://chen-ac.blog.csdn.net/ # 开发时间:2021/12/13 12:35 # 欢迎大家关注AIoT相关博客~ a = [1, 2, 3, 4, 5] b = ['h', 'e', 'l', 'l', 'o'] print(list(zip(a, b))) # 转为列表输出 # 当两个列表元素个数不相等时: a = [1, 2, 3, 4, 5, 6, 7, 8] b = ['h', 'e', 'l', 'l', 'o'] print(list(zip(a, b))) # 转为列表输出 # 当然,字符串也是可以迭代的,故: a = [1, 2, 3, 4, 5] b = 'hello' print(list(zip(a, b))) # 转为列表输出
我们从代码中其实可以理解,zip() 函数会将两个元素压缩在一起,这非常像我们字典中的键值对,故我们可以利用 zip() 函数去生成我们的字典,其代码格式非常像我们的列表推导式:
# 博主:辰chen # 博客地址:https://chen-ac.blog.csdn.net/ # 开发时间:2021/12/13 12:35 # 欢迎大家关注AIoT相关博客~ a = [1, 2, 3, 4, 5] b = ['h', 'e', 'l', 'l', 'o'] c = {item:value for item, value in zip(a, b)} print(c)