当前位置:  开发笔记 > 编程语言 > 正文

Python - 从键列表中访问分层dict元素

如何解决《Python-从键列表中访问分层dict元素》经验,为你挑选了1个好方法。

假设我有一个常规的"dict-of-dicts"如下:

d = {}
d['a'] = {}
d['a']['b'] = 3

我当然可以使用它来访问元素d['a']['b'].

在我的例子中,我有一个递归应用程序,在其中我将当前状态保持为键列表.所以我会的

my_key = ['a', 'b']

如何使用my_key?访问值3 ?当然,问题在于my_key可以任意长(深).

我意识到我可以编写另一个遍历函数,但似乎应该有一种直接的方法.有任何想法吗?



1> Kevin..:

您可以使用reduce不同的密钥迭代索引每一层dict:

>>> from functools import reduce #only necessary in 3.X
>>> d = {}
>>> d['a'] = {} #I'm assuming this is what you meant to type
>>> d['a']['b'] = 3
>>> keys = ("a", "b")
>>> reduce(dict.get, keys, d)
3

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有