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

如何遍历嵌套字典?

姜鸿
2023-03-14
问题内容

我有一个嵌套的python dictionary数据结构。我想without使用collection模块读取其键和值。数据结构像下面这样。

d = {'dict1': {'foo': 1, 'bar': 2}, 'dict2': {'baz': 3, 'quux': 4}}

我试图使用波纹管方式读取字典中的键,但出现错误。

for key, value in d:
    print(Key)

错误

ValueError: too many values to unpack (expected 2)

所以任何人都可以解释错误的原因以及如何遍历字典。


问题答案:

作为请求的输出,代码如下所示

    d = {'dict1': {'foo': 1, 'bar': 2}, 'dict2': {'baz': 3, 'quux': 4}}

    for k1,v1 in d.iteritems(): # the basic way
        temp = ""   
        temp+=k1
        for k2,v2 in v1.iteritems():
           temp = temp+" "+str(k2)+" "+str(v2)
        print temp

代替iteritems()您也可以使用items(),但是iteritems()效率更高并且返回迭代器。

希望这可以帮助 :)



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

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

  • 问题内容: 我目前有这个: test.json看起来像这样: 我越来越: 如何更改它,以便无论我拥有多少嵌套值,它都将循环遍历所有嵌套项目? 所以对于上面的例子,我会得到 问题答案: 您可以创建一个递归循环函数,但是会遇到一个问题:当属性是对象时,因为没有字符串,所以没有文本可显示。因此,您将得到: 因为while 是为项目#2显示的字符串,所以它是为项目#1显示的对象。 无论如何,这就是我组成的

  • 问题内容: 我正在尝试找到一种更好的方法来实现这一点: 我正在学习函数式编程,所以我只是尝试浮现在脑海的随机示例:) 问题答案: 用途: 或更妙的是,使用: 演示: Python 3将函数移出了内置函数并移入。

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

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