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)
还没有评论,来说两句吧...