zoukankan      html  css  js  c++  java
  • python递归实现多级菜单

    home = [
        {"id": 1, "name": "食品", "parent_id": 0},
        {"id": 2, "name": "手机", "parent_id": 0}
    ]
    
    category_list = [
        {"id": 1, "name": "食品", "parent_id": 0},
        {"id": 2, "name": "手机", "parent_id": 0},
        {"id": 3, "name": "华为", "parent_id": 2},
        {"id": 4, "name": "小米", "parent_id": 2},
        {"id": 5, "name": "华为P系列", "parent_id": 3},
        {"id": 6, "name": "生食", "parent_id": 1},
        {"id": 7, "name": "熟食", "parent_id": 1},
        {"id": 8, "name": "华为Mate系列", "parent_id": 3},
    ]
    
    res = []
    
    
    def get_subcategory(sub_category, one_res):
        for one in range(len(sub_category)):
            if one == 0:
                one_res["children"] = sub_category
    
            item_child_list = []
            for item_child in category_list:
                if item_child["parent_id"] == sub_category[one]["id"]:
                    item_child_list.append(item_child)
            a = get_subcategory(item_child_list, one_res["children"][one])
        return one_res
    
    
    for item in home:
        item_child_list = []
        # 获取第二层
        for item_child in category_list:
            if item["id"] == item_child["parent_id"]:
                item_child_list.append(item_child)
        resp = get_subcategory(item_child_list, item)
    
        res.append(resp)
    
    print(res)
    """
    	食品
    		生食 
    		熟食
    	手机
    		华为
    			华为P系列
    			华为Mate系列
    		小米
    		
    [{'id': 1, 'name': '食品', 'parent_id': 0, 'children': [{'id': 6, 'name': '生食', 'parent_id': 1}, {'id': 7, 'name': '熟食', 'parent_id': 1}]}, {'id': 2, 'name': '手机', 'parent_id': 0, 'children': [{'id': 3, 'name': '华为', 'parent_id': 2, 'children': [{'id': 5, 'name': '华为P系列', 'parent_id': 3}, {'id': 8, 'name': '华为Mate系列', 'parent_id': 3}]}, {'id': 4, 'name': '小米', 'parent_id': 2}]}]
    
    """
    
    
    此时此刻,非我莫属
  • 相关阅读:
    第12组 Alpha冲刺(4/6)
    第12组 Alpha冲刺(3/6)
    第12组 Alpha冲刺(2/6)
    第12组 Alpha冲刺 (1/6)
    第12组(78) 需求分析报告
    第12组(78)团队展示
    结对编程作业
    第06组Beta冲刺(2/5)-(组长)
    第06组Beta冲刺(1/5)-(组长)
    第06组Alpha冲刺(6/6)-(组长)
  • 原文地址:https://www.cnblogs.com/taozhengquan/p/9463377.html
Copyright © 2011-2022 走看看