Python 循环浏览3个级别的列表
我正在尝试设置一个字典,允许我循环3个级别。例如: 第1级:肉类、非肉类 二级:水果、蔬菜、猪、牛 第三级:苹果、橙子、花椰菜、胡萝卜、培根、火腿、排骨、牛排 我尝试的词典如下:Python 循环浏览3个级别的列表,python,Python,我正在尝试设置一个字典,允许我循环3个级别。例如: 第1级:肉类、非肉类 二级:水果、蔬菜、猪、牛 第三级:苹果、橙子、花椰菜、胡萝卜、培根、火腿、排骨、牛排 我尝试的词典如下: X = { "Meats":{ "Pig":[["Bacon"], ["Ham"]], "Cow":[["Ribs"], ["Steak"]] }, "Non-Meats":{ "Fruit":[["Apple"], ["Oranges"]], "Vegetable":[["
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']
为什么
“猪”:[[“培根”],[“火腿”]
而不是“猪”:[“培根”,“火腿”]
?请随时发布您的尝试。我们不会完全为你做家庭作业。为什么“猪”:[[“培根”],[“火腿”]
而不是“猪”:[“培根”,“火腿”]
?请随时发布您的尝试。我们不会完全为你做家庭作业。非常感谢。你的解释很好。列表是一个意外事件。答案和问题之间没有联系。但它被接受并被投票表决。这个问题已经被编辑,最初的问题是如何循环浏览字典,而不是如何设计这样的字典。我的回答是根据这个问题的版本量身定做的。谢谢。你的解释很好。列表是一个意外事件。答案和问题之间没有联系。但它被接受并被投票表决。这个问题已经被编辑,最初的问题是如何循环浏览字典,而不是如何设计这样的字典。我的回答是根据这个问题的版本量身定做的。