为了账号安全,请及时绑定邮箱和手机立即绑定

python使用dict理解按项目选择和删除

python使用dict理解按项目选择和删除

蝴蝶不菲 2021-03-29 07:15:37
如果我有以下这样的字典,什么是最好的方法挑选所有具有部分钥匙的物品 1d然后根据该键删除这些项目c = {('1d','f1'):1.5,('1w','f1'):1.2,('1d','f2'):1.4}
查看完整描述

3 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

>>> c = {('1d','f1'):1.5,('1w','f1'):1.2,('1d','f2'):1.4}

>>> {k: v for k, v in c.iteritems() if '1d' not in k}

{('1w', 'f1'): 1.2}

在py2.x中使用c.iteritems()它返回迭代器,对于py3.x可以使用c.items()。


请注意,这c.items()将在两个版本中均适用。


查看完整回答
反对 回复 2021-04-01
?
九州编程

TA贡献1785条经验 获得超4个赞

>>> c = {('1d','f1'):1.5,('1w','f1'):1.2,('1d','f2'):1.4}

>>> {k: v for k, v in c.items() if k[0] != '1d'}

{('1w', 'f1'): 1.2}

对于一般情况下使用if '1d' not in k。在Python 2.x中,使用dict.iteritems(迭代器而不是列表)代替


查看完整回答
反对 回复 2021-04-01
?
Qyouu

TA贡献1786条经验 获得超11个赞

请考虑以下方法


在python 2.7及更高版本中,您可以使用dict理解


>>> c = {('1d','f1'):1.5,('1w','f1'):1.2,('1d','f2'):1.4}

>>> {k: v for k, v in c.items() if '1d' not in k}

{('1w', 'f1'): 1.2}

在python 2.6及更低版本中,应使用generator代替dict


>>> c = {('1d','f1'):1.5,('1w','f1'):1.2,('1d','f2'):1.4}

>>> dict((k, v) for k, v in c.iteritems() if '1d' not in k)

{('1w', 'f1'): 1.2}


查看完整回答
反对 回复 2021-04-01
  • 3 回答
  • 0 关注
  • 189 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号