当前位置: 首页 > 面试题库 >

遍历嵌套字典的任何函数式编程方法?

司徒俊良
2023-03-14
问题内容

我正在尝试找到一种更好的方法来实现这一点:

d = {"a": {"b": {"c": 4}}} 
l = ["a", "b", "c"]
for x in l:
    d = d[x]
print (d) # 4

我正在学习函数式编程,所以我只是尝试浮现在脑海的随机示例:)


问题答案:

用途reduce()

reduce(dict.__getitem__, l, d)

或更妙的是,使用operator.getitem()

from operator import getitem

reduce(getitem, l, d)

演示:

>>> d = {"a": {"b": {"c": 4}}} 
>>> l = ["a", "b", "c"]
>>> from operator import getitem
>>> reduce(getitem, l, d)
4

Python
3将reduce()函数移出了内置函数并移入functools.reduce()



 类似资料:
  • 问题内容: 我有一个嵌套的数据结构。我想使用模块读取其键和值。数据结构像下面这样。 我试图使用波纹管方式读取字典中的键,但出现错误。 码 错误 所以任何人都可以解释错误的原因以及如何遍历字典。 问题答案: 作为请求的输出,代码如下所示 代替您也可以使用,但是效率更高并且返回迭代器。 希望这可以帮助 :)

  • 问题内容: 我试图遍历字典并打印出所有值不是嵌套字典的键值对。如果值是字典,我想进入它并打印出它的键值对…等等。有什么帮助吗? 这个怎么样?它仍然只打印一件事。 完整的测试用例 字典: 结果: 问题答案: 如Niklas所说,你需要递归,即你想定义一个函数来打印你的字典,如果值是一个dict,则想使用这个新字典来调用你的打印函数。 就像是 : 或从Python 3开始:

  • 问题内容: 我有一本字典,例如: 一切都始于“根”,它们有两种类型的数据:URL和文件夹,它们是字典。如果是文件夹,则必须具有键“ children”,该键的值是一个列表,我们可以在其中放置更多URL和文件夹。 现在,我想遍历此嵌套字典,以获取所有子文件夹中的URL,因此我编写了一个函数: 我可以这样使用它: 完美运作。但是它只是生成URL的字典,我不知道它在哪里。我也想走这条路。我该怎么做? 问

  • 本文向大家介绍Java函数式编程(十一):遍历目录,包括了Java函数式编程(十一):遍历目录的使用技巧和注意事项,需要的朋友参考一下 列出目录中的文件 用File类的list()方法可以很容易的列出目录中的所有文件的文件名。如果想要获取文件而不止是文件名的话,可以使用它的listFiles()方法。这很简单,难的是怎么去处理这个返回的列表。我们不再使用传统的冗长的外部迭代器,而是使用优雅的函数式

  • 问题内容: 我必须遍历json数组对象。 它具有以下结构。 基本上我在做的是prod_1是产品的名称,并且prod_1的版本列表已填充在其中。 所以现在我想要的是产品的名称以及它的版本。 问题在于可能有很多产品和该产品下的许多版本。所以我需要可以在 javascript 中使用适当的循环结构来对其进行处理。 最好将循环将产品名称存储在一个变量中,将版本存储在另一个变量中,因为我需要对产品名称进行一

  • 问题内容: 我试图遍历嵌套对象以检索由字符串标识的特定对象。在下面的示例对象中,标识符字符串是“ label”属性。我无法解决如何遍历树以返回适当对象的问题。任何帮助或建议,将不胜感激。 问题答案: 您可以创建像这样的递归函数来对对象进行深度优先遍历。 可以这样称呼