Python中删除字典中键值对的方法

方法一:dic.pop('key', 默认值)

## pop移除的键存在时,返回键对应的值
dic = {'1':'node1','2':'node2'}
print(dic.pop('1', None)) # node1
print(dic) # {'2': 'node2'}

## pop移除的键不存在,则返回默认值
dic = {'1':'node1','2':'node2'}
print(dic.pop('3', None)) # None
print(dic) # {'1': 'node1', '2': 'node2'}

1、字典的pop方法可以将字典键所对应的值给删除掉,但因为字典中键和值是映射关系,该键所对应的值被删除了,则该键也会从字典中移除。

2、pop方法会返回被移除键对应的值。

3、若pop方法想移除的键不存在,则返回默认值。

方法二:使用Python关键字del移除字典中的键值对

## 必须保证要移除的键存在
dic = {'1':'node1','2':'node2'}
del dic['1']
print(dic) # {'2': 'node2'}

## 若移除的键存在,则会报异常KeyError
dic = {'1':'node1','2':'node2'}
del dic['3'] # 报异常KeyError: '3'
print(dic)

1、del关键字只有一个作用,就是将一个对象从内存中彻底地删除掉。

2、由于字典的键与值映射关系,彻底地从内存中删除值 del dic['key'],意味着值所对应的键也将被移除。

3、由于当字典中不存在指定的键时,dic['key']会报异常KeyError,所以必须保证要移除的键在字典中是存在的。

 方法三:使用dic.clear()方法

dic = {'1':'node1','2':'node2'}
dic.clear()
print(dic) # {}

dic.clear()方法会将dic字典中的所有键值对都移除掉,最后得到一个空字典。 

删除字典中多个键值对的方法: 

1、使用for循环遍历要删除的键

dic = {'3': 'node3', '4': 'node4', '5': 'node5', '1': 'node1', '2': 'node2'}
l = ['1', '3', '5']
for k in l:
  dic.pop(k, None)
print(dic) # {'4': 'node4', '2': 'node2'}

## 键不存在也可使用
dic = {'3': 'node3', '4': 'node4', '5': 'node5', '1': 'node1', '2': 'node2'}
l = ['1', '3', '5', '7']
for k in l:
  dic.pop(k, None)
print(dic) # {'4': 'node4', '2': 'node2'}

 2、使用map函数

## 要删除的键不存在时返回None
dic = {'3': 'node3', '4': 'node4', '5': 'node5', '1': 'node1', '2': 'node2'}
arr = ['1', '3', '5', '7']
res = map(dic.pop, arr)
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值