方法一: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)