如何在Python中提取一个字典中的键和值
如何在Python中提取一个字典中的键和值
我有一个包含多个键值对(大约16个)的大字典对象,但我只对其中的3个感兴趣。 如何最好(最短/高效/最优雅地)对这样的字典进行子集处理?
我所知道的最好的方法是:
bigdict = {'a':1,'b':2,....,'z':26} subdict = {'l':bigdict['l'], 'm':bigdict['m'], 'n':bigdict['n']}
我相信有比这更优雅的方法。
admin 更改状态以发布 2023年5月25日
你可以试试:
dict((k, bigdict[k]) for k in ('l', 'm', 'n'))
... 或在Python版本2.7或更高版本中(感谢Fábio Diniz指出也适用于2.7):
{k: bigdict[k] for k in ('l', 'm', 'n')}
更新: 如Håvard S指出,我假设你已经知道键将在字典中 - 如果您无法做出这个假设,请查看他的答案. 或者,如评论中timbo指出,如果想要一个丢失在bigdict
中的键对应到None
,可以这样做:
{k: bigdict.get(k, None) for k in ('l', 'm', 'n')}
如果您正在使用Python 3,并且只想在新字典中使用实际存在于原始字典中的键,则可以利用对象实现一些集合操作的事实:
{k: bigdict[k] for k in bigdict.keys() & {'l', 'm', 'n'}}