如何解决从字典中提取键值对的子集?
你可以试试:
dict((k, bigdict[k]) for k in ('l', 'm', 'n'))
…或在 蟒蛇 3 Python 2.7 或更高版本 (感谢 F谩bio
Diniz指出它也适用于 2.7):
{k: bigdict[k] for k in ('l', 'm', 'n')}
_更新:正如指出的那样,我假设您知道键将在字典中 -如果您无法做出该假设,请参阅他的答案。
至少短一点:
wanted_keys = ['l', 'm', 'n'] # The keys you want
dict((k, bigdict[k]) for k in wanted_keys if k in bigdict)
或者,在评论中指出的那样,如果您想要一个缺少的键bigdict
映射到None
,您可以执行以下操作:_
{k: bigdict.get(k, None) for k in ('l', 'm', 'n')}
如果您使用的是 Python 3,并且您 只 希望新 dict 中实际存在于原始字典中的键,则可以使用该事实来查看对象实现一些集合操作:
{k: bigdict[k] for k in bigdict.keys() & {'l', 'm', 'n'}}
解决方法
我有一个大字典对象,它有几个键值对(大约 16 个),但我只对其中 3 个感兴趣。实现这一目标的最佳方式是什么(最短/高效/最优雅)?
我知道的最好的是:
bigdict = {'a':1,'b':2,....,'z':26}
subdict = {'l':bigdict['l'],'m':bigdict['m'],'n':bigdict['n']}
我相信有比这更优雅的方式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。