我有一个很大的字典对象,它有几个键值对(大约16个),但我只对其中的3个感兴趣.实现这一目标的最佳方式(最短/最有效/最优雅)是什么?

据我所知:

bigdict = {'a':1,'b':2,....,'z':26} 
subdict = {'l':bigdict['l'], 'm':bigdict['m'], 'n':bigdict['n']}

我相信还有比这更优雅的方式.

推荐答案

你可以试试:

dict((k, bigdict[k]) for k in ('l', 'm', 'n'))

...或在Python 3Python版本2.7或更高版本(thanks to 100 for pointing that out that it works in 2.7 too)中:

{k: bigdict[k] for k in ('l', 'm', 'n')}

Update: As 100 points out, I'm assuming that you know the keys are going to be in the dictionary - see 101 if you aren't able to make that assumption. Alternatively, as 102 points out in the comments, if you want a key that's missing in 103 to map to 104, you can do:

{k: bigdict.get(k, None) for k in ('l', 'm', 'n')}

如果您使用的是Python 3,并且您only希望新字典中的关键点与原始字典中实际存在的关键点相同,则可以使用该事实来查看实现了一些集合操作的对象:

{k: bigdict[k] for k in bigdict.keys() & {'l', 'm', 'n'}}

Python相关问答推荐

这些变量是否相等,因为它们引用相同的实例,尽管它们看起来应该具有不同的值?

有没有办法清除气流中的僵尸

隐藏QComboBox的指示器(qdarkstyle)

FastAPI:使用APIRouter路由子模块功能

当测试字符串100%包含查询字符串时,为什么t fuzzywuzzy s Process.extractBests不给出100%分数?

Ibis中是否有一个ANY或ANY_UTE表达,可以让我比较子查询返回的一组值中的值?

如何将Matplotlib的fig.add_axes本地坐标与我的坐标关联起来?

如何使用上下文管理器创建类的实例?

如何使用矩阵在sklearn中同时对每个列执行matthews_corrcoef?

线性模型PanelOLS和statmodels OLS之间的区别

Pandas 有条件轮班操作

追溯(最近最后一次调用):文件C:\Users\Diplom/PycharmProject\Yolo01\Roboflow-4.py,第4行,在模块导入roboflow中

如何使用html从excel中提取条件格式规则列表?

将数据框架与导入的Excel文件一起使用

SQLAlchemy bindparam在mssql上失败(但在mysql上工作)

如果初始groupby找不到满足掩码条件的第一行,我如何更改groupby列,以找到它?

跳过嵌套JSON中的级别并转换为Pandas Rame

如何找出Pandas 图中的连续空值(NaN)?

为什么调用函数的值和次数不同,递归在代码中是如何工作的?

如何从pandas DataFrame中获取. groupby()和. agg()之后的子列?