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)

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年3月5日 下午12:28
下一篇 2023年3月5日 下午12:31

相关推荐