【问题标题】:subset a nested dictionary子集嵌套字典
【发布时间】:2017-09-25 19:33:12
【问题描述】:
nested = {'a':{'aa':1, 'bb':2}, 'b':{'aa':3, 'bb':4}}

如何将result 作为nested 的子集,其中第二个键是'aa':

result = {'a':{'aa':1}, 'b':{'aa':3}}

我试过这个但没有用:

result = {k1:{k2:nested[k1][k2]} for k1 in nested.keys() & k2 in ['aa']}

提前谢谢你。

【问题讨论】:

  • “引用子集”是什么意思?
  • 如果结果只是对原始字典的引用会“更好”。所以当我改变结果时,嵌套将被改变。我将对其进行编辑以删除该词。
  • 所以,您基本上想要原始dict 的子集-视图。 Python 中没有这样的内置功能。

标签: python dictionary nested


【解决方案1】:

您可以使用带有过滤器的嵌套字典理解来过滤内部字典,(这将创建一个新字典而不是修改原始字典):

{k1: {k2: v2 for k2, v2 in v1.items() if k2 == 'aa'} for k1, v1 in nested.items()}
# {'a': {'aa': 1}, 'b': {'aa': 3}}

【讨论】:

    猜你喜欢
    • 2015-06-02
    • 1970-01-01
    • 2012-09-14
    • 1970-01-01
    • 2018-01-29
    • 2018-06-10
    • 2021-12-20
    • 1970-01-01
    • 2012-01-29
    相关资源
    最近更新 更多