- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我调用了一个返回字典的 API。该词典的一部分本身就是另一本词典。在那个内部字典中,有些键可能不存在,也可能存在。这些键可以引用另一个字典。
举个例子,假设我有以下词典:
dict1 = {'a': {'b': {'c':{'d':3}}}}
dict2 = {'a': {'b': {''f': 2}}}
我想编写一个可以在字典中传递的函数,以及一个可以将我引导至 3
的键列表。在 dict1
, 和 2
在 dict2
.但是,有可能 b
和 c
可能不存在于 dict1
中, 和 b
和 f
可能不存在于 dict2
中.
我想要一个可以这样调用的函数:
get_value(dict1, ['a', 'b', 'c'])
这将返回 3,或者如果未找到键,则返回默认值 0。
我知道我可以使用这样的东西:
val = dict1.get('a', {}).get('b', {}).get('c', 0)
但这对我来说似乎很罗嗦。
我也可以将字典展平(参见 https://stackoverflow.com/a/6043835/1758023 ),但这可能有点密集,因为我的字典实际上相当大,并且在某些键中有大约 5 层嵌套。而且,我只需要从字典中得到两件事。
现在我正在使用 flattenDict
在 SO 问题中发挥作用,但这对我的情况来说似乎有点矫枉过正。
最佳答案
您可以使用递归函数:
def get_value(mydict, keys):
if not keys:
return mydict
if keys[0] not in mydict:
return 0
return get_value(mydict[keys[0]], keys[1:])
如果键不仅可以丢失,而且可以是其他非字典类型,您可以这样处理:
def get_value(mydict, keys):
if not keys:
return mydict
key = keys[0]
try:
newdict = mydict[key]
except (TypeError, KeyError):
return 0
return get_value(newdict, keys[1:])
关于python - 深入到嵌套字典的几个层次(可能不存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30872209/
我正在尝试将多个水平链接的 Button 和 TextView 垂直链接为 View 集,但仍保持平面 View 层次结构。这是我的初始布局和代码:
到目前为止,我已经在Google BigQuery上训练了几种模型,目前我需要查看模型的外观(即架构,损失函数等)。 有没有办法获取这些信息? 最佳答案 仔细阅读文档后,我可以说该功能尚不存在。我什至
本文实例讲述了PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)。分享给大家供大家参考,具体如下: 前言: 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个
我是一名优秀的程序员,十分优秀!