python3字典之pop()与popitem()

这里我们要说的是字典删除方法:pop()和popitem(),这两种种方法的作用不同,操作方法及返回值都不相同。
pop (key[,default])
其中,key是必选参数,必须给出,default是可选参数,可以不给出。
如果键值key在字典中存在,删除dict[key],返回 dict[key]的value值。
否则,如有给出default值则返回default值,如果default值没有给出,就会报出KeyError异常。
pop()方法至少接受一个参数,最多接受两个参数。

仅给出key且key在字典中
或key和default都给出且key在字典中

d = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
pop_obj = d.pop('b')
print('pop_obj:', pop_obj)
print('dict:', d)

d = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
pop_obj = d.pop('b', 'none')
print('pop_obj:', pop_obj)
print('dict:', d)

输出

pop_obj: 2
dict: {'a': 1, 'd': 4, 'c': 3}

pop_obj: 2
dict: {'d': 4, 'a': 1, 'c': 3}

仅给出key且key不在字典中

d = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
pop_obj = d.pop('e')
print('pop_obj:', pop_obj)

输出

Traceback (most recent call last):
  File "/home/PycharmProjects/test/re_test.py", line 29, in <module>
    pop_obj = d.pop('e')
KeyError: 'e'

给出key和default值且key不在字典中

d = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
pop_obj = d.pop('e', 'none')
print('pop_obj:', pop_obj)
print('dict:', d)

输出

pop_obj: none
dict: {'d': 4, 'a': 1, 'b': 2, 'c': 3}

popitem()
随机删除字典中的一个键值对,并且返回该键值对,(key,value)形式。
如果字典已经为空,却调用了此方法,就报出KeyError异常。

在这里,“随机”我看到有好几种解释,我个人理解是我们创建的字典是无序的,它返回给我们的字典是怎样的顺序我们并不清楚,但popitem()会从返回字典的第一个开始删除。

d = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
print(d)
pop_obj = d.popitem()
print('pop_obj:', pop_obj)
print('dict:', d)
pop_obj = d.popitem()
print('pop_obj:', pop_obj)
print('dict:', d)

第一次运行该代码的输出

{'c': 3, 'b': 2, 'd': 4, 'a': 1}
pop_obj: ('c', 3)
dict: {'b': 2, 'd': 4, 'a': 1}
pop_obj: ('b', 2)
dict: {'d': 4, 'a': 1}

第二次运行该代码的输出

{'c': 3, 'd': 4, 'b': 2, 'a': 1}
pop_obj: ('c', 3)
dict: {'d': 4, 'b': 2, 'a': 1}
pop_obj: ('d', 4)
dict: {'b': 2, 'a': 1}

  • 16
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Python字典的删除可以使用以下几种方法: 1. 使用del命令删除特定键的元素。可以通过del命令按照键来删除字典中的元素。例如,如果有一个字典stu_info={'num':'20180105','name':'Yinbing','age':'17'},要删除其中的age键及其对应的值,可以使用del stu_info['age']。这样就会从字典中删除age键及其对应的值。 2. 使用clear()方法清空整个字典。clear()方法用于清除字典中的所有元素。可以通过字典名加上clear()方法来清空字典。例如,如果有一个字典stu_info={'num':'20180105','name':'Yinbing','age':'17'},要清空整个字典,可以使用stu_info.clear()。这样会将字典中的所有键值对都删除,使字典变为空字典。 3. 使用pop()方法删除指定键的元素。pop()方法用于获取指定键的值,并将这个键值对从字典中移除。可以通过字典名加上pop()方法来删除指定键的元素。例如,如果有一个字典stu_info={'num':'20180105','name':'Yinbing','age':'17'},要删除其中的age键及其对应的值,可以使用A=stu_info.pop('age')。这样会返回并删除age键对应的值。如果要删除的键不存在,可以提供一个默认值作为参数,例如B=stu_info.pop('age',18),这样如果age键不存在,就会返回默认值18。 4. 使用popitem()方法随机删除一个键值对。popitem()方法用于随机获取一个键值对,并将其从字典中移除。可以通过字典名加上popitem()方法来实现。例如,如果有一个字典stu_info={'num':'20180105','name':'Yinbing','age':'17'},要随机删除一个键值对,可以使用a=stu_info.popitem()。这样会随机返回一个键值对并将其从字典中删除。 以上是关于Python字典删除的相关知识。可以根据具体的需求选择适合的方法来删除字典中的元素或整个字典。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [python基础之字典的删除](https://blog.csdn.net/jiankang66/article/details/125017420)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值