[转载] python 字典的get()pop()方法的区别

参考链接: Python字典dictionary| pop方法

get()方法 

返回指定键 key 的值,如果值不在字典中返回默认值。语法:dict.get(key, default=None) 

  参数: 

    key – 字典中要查找的键default – 如果指定键的值不存在时,返回该默认值值  实例: 

   key存在,则返回key对应的值 >>> t = {'name': 'summer', 'age': 23}

>>> t.get('name', 'judy')

'summer'

  key不存在,返回默认值 >>> t = {'name': 'summer', 'age': 23}

>>> t.get('new_name', 'judy')

'judy'

  key不存在,也没有给默认值 >>> t = {'name': 'summer', 'age': 23}

>>> t.get('new_name')

# 这里是空的,什么也没有

  使用场景: 

  从字典取出指定健的值  

pop()方法 

 删除字典给定键 key 所对应的值,返回值为被删除的值,如果要删除的 key 不存在,则需要添加默认值,否则会报错。  语法:pop(key[, default]) 

  参数: 

    key – 字典中要查找的键default – 如果指定键的值不存在时,返回该默认值值   实例: 

   删除指定key >>> t = {'name': 'summer', 'age': 23}

>>> t.pop('name')

'summer'

>>> t

{'age': 23}

  key不存在,返回默认值 >>> t = {'name': 'summer', 'age': 23}

>>> t.pop('new_nmae', 'judy')

'judy'

>>> t

{'name': 'summer', 'age': 23}

  key不存在,没有默认值 >>> t = {'name': 'summer', 'age': 23}

>>> t.pop('new_nmae')

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

KeyError: 'new_nmae'

   使用场景: 

  当这个键程序后面不在使用,明确删除后不会影响其它业务,可以使用pop(),但一定要给默认值,否则当key不存在的时候,程序会报错  注意: 

  一般应该避免使用这个函数,避免有地方在使用这个值,对程序造成影响  

如何在循环dict()中执行pop操作 

如,想把 d = {‘a’:1, ‘b’:2, ‘c’:3} 中不满足条件的元素给删除事列1:是错误❌的做法 

  会报这个错误:RuntimeError: dictionary changed size during iteration     d = {'a':1, 'b':2, 'c':3} 

    for k, v in d.items():

        if v < 2:

            d.pop(k)

 事列2:处理是对的✅    d = {'a':1, 'b':2, 'c':3} 

    for k in list(d.keys()):

        v = d[k]

        if v < 2:

            d.pop(k) 或者 del d[k]

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值