【发布时间】:2022-01-24 18:36:07
【问题描述】:
我正在尝试遍历这种树,其想法是获取所有“标题”。注意这个结构可以变得更大,这意味着每个标题将来可以得到更多的子类别。有什么想法吗?
我正在尝试这样做:
def continue_searching(item):
for i in len(item):
if categories[i]["subcategories"]:
continue_searching(i["subcategories"])
print(i["subcategories"])
def give_titles(categories):
for i in len(categories):
if categories[i]["subcategories"]:
continue_searching(i["subcategories"])
print(i['title'])
categories = [
{
"title": "Food",
"subcategories": [
{"title": "Bread"},
{
"title": "Meat",
"subcategories": [
{"title": "Pork",
"subcategories": [
{"title": "White Pork"},
{"title": "Red Pork"}
]
},
{"title": "Beef"},
],
},
{"title": "Cheese"},
],
},
{"title": "Drinks"},
]
give_titles(categories)
预期输出:
Food
-Bread
-Meat
--Pork
---White Pork
---Red Pork
--Beef
-Cheese
Drinks
请注意,我没有使用递归,因为我不清楚何时停止调用并且我不想使调用堆栈饱和。
【问题讨论】:
-
我不明白这个输出。为什么有3个“猪肉”?通过获取标题,您是否要将它们放入字典中?在列表中?它们已经在数据结构中。
-
因为有三个值为“pork”的“title”键
-
我认为你在猪肉条目中有一些额外的换行符。我的修正看起来对吗?
-
您想打印书面输出吗?你想通过遍历来达到什么目标? @JohnKugelman 的更正是您尝试打印的实际输出吗?
-
我执行代码时的想法是得到预期的输出,也就是说,打印键“title”的所有值
标签: python-3.x list dictionary