[英]Category and subcategory classes. Need code example
我有像[{id, category, parent_id},]
這樣的字典類型數據集。 我需要創建 class 來解析這個數據集並創建簡單的界面來獲取父母和孩子。 我不想發明輪子,有人可以分享可以幫助我實現此任務的代碼嗎?
我試圖創建數據類,然后創建類來實現與它們一起工作的方法,但我厭倦了思考一個有能力的實現。 時間流逝,沒有結果。
from dataclasses import dataclass
@dataclass
class Node:
id: int
category: str
parent_id: int
class Tree:
def __init__(self, dataset):
self.nodes = {d["id"]: Node(d["id"], d["category"], d["parent_id"]) for d in dataset}
def get_parent(self, node_id: int) -> Node:
return self.nodes.get(self.nodes[node_id].parent_id)
def get_children(self, node_id: int) -> List[Node]:
children = []
for id, node in self.nodes.items():
if node.parent_id == node_id:
children.append(node)
return children
這樣,你可以通過傳入你的數據集創建一個樹 object ,然后使用get_parent和get_children方法分別檢索父節點和子節點。
您可以使用以下方式創建一個 class 的 object 並使用方法:
dataset = [{'id': 1, 'category': 'cat1', 'parent_id': None},
{'id': 2, 'category': 'cat2', 'parent_id': 1},
{'id': 3, 'category': 'cat3', 'parent_id': 2},
{'id': 4, 'category': 'cat4', 'parent_id': 1},
{'id': 5, 'category': 'cat5', 'parent_id': 4}]
tree = Tree(dataset)
parent = tree.get_parent(3)
childrens = tree.get_children(1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.