通过value删除键值对

看过好多删除字典键值对的方法(比如:d.pop(‘key’),del d[‘key’]等),都是通过key来进行删除。但是在不知道key的情况下就不好弄了。

本文介绍几种通过value来删除键值对的方法。

1.构造新字典 - - - 最简便

# 删除value='c'的键值对
>>> d = {1: 'a', 2: 'b', 3: 'c'}
>>> new = {k:v for k,v in d.items() if v!='c'} 
>>> new
{1: 'a', 2: 'b'}

2.使用 copy() 方法 - - - 不容易想到

>>> d = {1: 'a', 2: 'b', 3: 'c'}
>>> for k in d.copy(): # 没加items()只在keys()循环,而不是(k,v)循环
	    if d[k] == 'c':
		    d.pop(k) # 或者 del d[k]
>>> d
{1: 'a', 2: 'b'}

3.使用 list 方法强制copy d.keys() - - - 最常见

>>> for k in list(d): # 使用list强制copy d.keys(),避免pop出错
	if d[k] == 'c':
		d.pop(k) # 或者 del d[k]
>>> d
{1: 'a', 2: 'b'}

小结:

所有方法的本质都是先通过value去确定key,再通过key来删除键值对。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值