Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from anytree.importer import DictImporter
- from anytree.search import findall
- from anytree import Node
- def check(a: str, b: str, tree: dict) -> bool:
- root = DictImporter(nodecls=Node).import_(tree)
- nodes = findall(root, filter_=lambda node: node.name in (a, b))
- # idk what to do if there are more than 2 nodes...
- if len(nodes) != 2:
- return False
- # checks if the nodes are parent-child related
- if nodes[0].parent == nodes[1] or nodes[1].parent == nodes[0]:
- return True
- return False
- # -------------
- tree = {
- "name": "1",
- "children": [
- {
- "name": "2",
- "children": [
- {
- "name": "2.1",
- "children": [{"name": "3"}]
- },
- {
- "name": "2.2",
- "children": [
- {
- "name": "2.2.1",
- "children": [{"name": "3"}]
- }
- ]
- }
- ]
- }
- ]
- }
- # results in False
- print(check(a="2.1", b="3", tree))
Advertisement
Add Comment
Please, Sign In to add comment