章节
问答
课签
笔记
评论
占位
占位

Python删除dict元素

当同学转校时,我们需要把同学的成绩从已有的成绩dict中删除,这个时候我们就需要学习如何删除dict中的元素。
dict提供便捷的pop()方法,允许我们快速删除元素,pop()方法需要指定需要删除的元素的key,并返回对应的value。
假设Alice转校了,需要把Alice的成绩删除,可以这样写:

d = {
    'Alice': 45,
    'Bob': 60,
    'Candy': 75,
    'David': 86,
    'Ellena': 49
}
print(d) # ==> {'Alice': 45, 'Bob': 60, 'Candy': 75, 'David': 86, 'Ellena': 49}
alice_score= d.pop('Alice')
print(alice_score) # ==> 45
print(d) # ==> {'Bob': 60, 'Candy': 75, 'David': 86, 'Ellena': 49}

需要注意的是,pop()方法的参数是dict中的key,当key不存在时,同样会引起错误。比如在上述操作中,已经把Alice的成绩删除了,假如再次pop('Alice'),将会引发错误。

d.pop('Alice')
# 报错
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'Alice'

任务

在dict中,使用keys()方法,可以返回dict的所有key,在删除某个元素时,可以通过这个方法先判断某个元素是否存在,请改造前面的程序,使得即使key不存在时,删除也不会抛异常。

?不会了怎么办

参考答案:

d = {
    'Alice': 45,
    'Bob': 60,
    'Candy': 75,
    'David': 86,
    'Ellena': 49
}
name = 'Alice'
if name in d.keys():
    d.pop(name)
else:
    print('{} not in d'.format(name))
||
1
2
# Enter a code
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
提交
重置代码
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

最新回答 / qq_慕移动6403521
返回值为列表,因为后面将用keys()返回值迭代循环,你也可以直接打印出来

最新回答 / 寂寞高手
我这个应该是和答案一样的思路吧

最新回答 / qq_慕仙1244835
d.pop('Alice')是已经对dict中的 'Alice'进行删除,而将删除的结果赋值到alice_score,只是为了让人清楚了解删除key后所返回对应的值

最新回答 / 慕尼黑9510016
运行没问题,但是这个L变量有什么用呢?如果Alice已经删过了这个代码还是会出错啊😔

最赞回答 / ClearlyS
因为pop(key)删除的时候若key不存在会抛异常,所以要先检查

最赞回答 / weixin_慕慕3548851
在Python中,确实可以使用`del`关键字来删除字典中的元素,例如:```pythonmy_dict = {'a': 1, 'b': 2, 'c': 3}del my_dict['b']  # 删除键为'b'的元素```这种方法通常是直接而有效的,特别是当您知道要删除的键时。但有时候,使用其他方式删除字典中的元素可能更有用,具体取决于您的需求和情况:1. **字典的`pop()`方法:** 您可以使用`pop()`方法来删除字典中的元素,并且可以在元素不存在时提供一个默认值。例如:   ```pyth...

最新回答 / 北丶斗
<...code...>

已采纳回答 / 慕标2307725
是格式化字符串的函数。基本语法是通过 {} 和 : 来代替以前的 %。

最新回答 / qq_精慕门9151183
alice_score= d.pop('Alice')这里已经把Alice从d里面删掉了,因为d里面已经没有Alice了,后面再用pop就会报错

最赞回答 / qq_慕后端3253774
{}里面是一个动态的字符串,平时我们定义的字符串是固定的,但是要是字符串其中的某个字符串是变化的,这种方法是不错的idea。

最赞回答 / Expect3667087
已经很好了

最赞回答 / 慕慕尼黑黑
我做出来了,大概是这样:?
d = {
    'Alice': 45,
    'Bob': 60,
    'Candy': 75,
    'David': 86,
    'Ellena': 49
}
L = d.keys()  # ==&# =拿到dict的姓名列表
print(L)
tendDelete = ['Alice', 'Zero'] ...

最新回答 / qq_风雨兼程_11
因为查找字典都是使用Key值来查找相应的Value,你用循环遍历字典,自然也能查找到相应的Key.

已采纳回答 / 慕仰954904
k = keys(d) 改成 k = d.keys()
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言