Nic*_*las 5 dictionary list python-3.x
我正在尝试遍历这种树,其想法是获取所有“标题”。请注意,这个结构可以变得更大,这意味着每个标题将来都可以有更多的子类别。任何想法?
我正在尝试这样做:
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)
Run Code Online (Sandbox Code Playgroud)
预期输出:
Food
-Bread
-Meat
--Pork
---White Pork
---Red Pork
--Beef
-Cheese
Drinks
Run Code Online (Sandbox Code Playgroud)
请注意,我没有使用递归,因为我不清楚何时停止调用,并且我不想使调用堆栈饱和。
定义这个函数:
def write_titles(cats, depth=0):
for c in cats:
print('-'*depth, c['title'])
write_titles(c.get('subcategories', []), depth+1)
Run Code Online (Sandbox Code Playgroud)
然后使用 来调用它write_titles(categories)
。
归档时间: |
|
查看次数: |
208 次 |
最近记录: |