Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 循环浏览3个级别的列表_Python - Fatal编程技术网

Python 循环浏览3个级别的列表

Python 循环浏览3个级别的列表,python,Python,我正在尝试设置一个字典,允许我循环3个级别。例如: 第1级:肉类、非肉类 二级:水果、蔬菜、猪、牛 第三级:苹果、橙子、花椰菜、胡萝卜、培根、火腿、排骨、牛排 我尝试的词典如下: X = { "Meats":{ "Pig":[["Bacon"], ["Ham"]], "Cow":[["Ribs"], ["Steak"]] }, "Non-Meats":{ "Fruit":[["Apple"], ["Oranges"]], "Vegetable":[["

我正在尝试设置一个字典,允许我循环3个级别。例如:

第1级:肉类、非肉类 二级:水果、蔬菜、猪、牛 第三级:苹果、橙子、花椰菜、胡萝卜、培根、火腿、排骨、牛排

我尝试的词典如下:

X = {
"Meats":{
    "Pig":[["Bacon"], ["Ham"]], 
    "Cow":[["Ribs"], ["Steak"]]
    },
"Non-Meats":{
    "Fruit":[["Apple"], ["Oranges"]], 
    "Vegetable":[["Broccoli"], ["Carrots"]]
    }
} 

任何关于如何处理这一问题的建议都将不胜感激。

解决这一问题所需的是一步一步地浏览字典,并找出需要反复阅读的内容

第一步: 如何遍历顶级字典键

for key in X:
    do something
第二步:

问:对于每个键,您需要迭代哪些内容

答:另一条格言。因此,我们已经包括上一步:

for key in X:
    for key_two in X[key]:
        do something
第三步:

问:你最终在这些格言中都有什么

回答:列表列表(例如
[[“Bacon”]]
)。我不知道为什么这些都是一个列表,你可以把它们做成字符串。例如,
{“Pig”:[“Bacon”,“Ham”]}
。然而,对于您所拥有的,我们得到:

for key in X:
    for key_two in X[key]:
        for food in X[key][key_two]:
            print food # If you want to print without the list, it'd be either a final nested loop or "print food[0]"

要解决这样的问题,你需要一步一步地浏览你的字典,找出你需要反复浏览的内容

第一步: 如何遍历顶级字典键

for key in X:
    do something
第二步:

问:对于每个键,您需要迭代哪些内容

答:另一条格言。因此,我们已经包括上一步:

for key in X:
    for key_two in X[key]:
        do something
第三步:

问:你最终在这些格言中都有什么

回答:列表列表(例如
[[“Bacon”]]
)。我不知道为什么这些都是一个列表,你可以把它们做成字符串。例如,
{“Pig”:[“Bacon”,“Ham”]}
。然而,对于您所拥有的,我们得到:

for key in X:
    for key_two in X[key]:
        for food in X[key][key_two]:
            print food # If you want to print without the list, it'd be either a final nested loop or "print food[0]"

您要做的是创建一个嵌套字典

有一件事可以帮助您理解正在创建的结构,那就是正确的格式设置。有一个称为PEP8的格式化标准,但只要保持一致,就可以使用任何想要的样式

X = {
    "Meats": {
        "Pig": [
            ["Bacon"], ["Ham"]
        ],

        "Cow": [
            ["Ribs"], ["Steak"]
        ]
     },

     "Non-Meats": {
         "Fruit": [
            ["Apple"],  ["Oranges"]
        ],

        "Vegetable": [
            ["Broccoli"], ["Carrots"]
        ]
    }
}
这种格式是否使结构更易于阅读?在我看来,每个内部项目周围的括号是不必要的,因为它们已经在列表的一部分中了

如果我们重写“non meats”字典项中的蔬菜项,而不使用这些内方括号,则如下所示:

"Vegetable": [
    "Broccoli", "Carrots"
]
['Broccoli', 'Carrots']
然后你可以得到一份蔬菜清单,如下所示:

veggies = x['Non-Meats']['Vegetable']
变量“veggies”现在是一个可编辑的列表。打印该列表将导致如下结果:

"Vegetable": [
    "Broccoli", "Carrots"
]
['Broccoli', 'Carrots']

您要做的是创建一个嵌套字典

有一件事可以帮助您理解正在创建的结构,那就是正确的格式设置。有一个称为PEP8的格式化标准,但只要保持一致,就可以使用任何想要的样式

X = {
    "Meats": {
        "Pig": [
            ["Bacon"], ["Ham"]
        ],

        "Cow": [
            ["Ribs"], ["Steak"]
        ]
     },

     "Non-Meats": {
         "Fruit": [
            ["Apple"],  ["Oranges"]
        ],

        "Vegetable": [
            ["Broccoli"], ["Carrots"]
        ]
    }
}
这种格式是否使结构更易于阅读?在我看来,每个内部项目周围的括号是不必要的,因为它们已经在列表的一部分中了

如果我们重写“non meats”字典项中的蔬菜项,而不使用这些内方括号,则如下所示:

"Vegetable": [
    "Broccoli", "Carrots"
]
['Broccoli', 'Carrots']
然后你可以得到一份蔬菜清单,如下所示:

veggies = x['Non-Meats']['Vegetable']
变量“veggies”现在是一个可编辑的列表。打印该列表将导致如下结果:

"Vegetable": [
    "Broccoli", "Carrots"
]
['Broccoli', 'Carrots']

为什么
“猪”:[[“培根”],[“火腿”]
而不是
“猪”:[“培根”,“火腿”]
?请随时发布您的尝试。我们不会完全为你做家庭作业。为什么
“猪”:[[“培根”],[“火腿”]
而不是
“猪”:[“培根”,“火腿”]
?请随时发布您的尝试。我们不会完全为你做家庭作业。非常感谢。你的解释很好。列表是一个意外事件。答案和问题之间没有联系。但它被接受并被投票表决。这个问题已经被编辑,最初的问题是如何循环浏览字典,而不是如何设计这样的字典。我的回答是根据这个问题的版本量身定做的。谢谢。你的解释很好。列表是一个意外事件。答案和问题之间没有联系。但它被接受并被投票表决。这个问题已经被编辑,最初的问题是如何循环浏览字典,而不是如何设计这样的字典。我的回答是根据这个问题的版本量身定做的。