# 字典树
import json
class TrieTree:
def __init__(self):
self.root = {}
def insert(self, item):
current_node = self.root
for _item in item:
node = current_node.get(_item)
if node is None:
new_node = {}
current_node[_item] = new_node
current_node = new_node
else:
current_node = node
current_node["is_file"] = True
trie_tree = TrieTree()
trie_tree.insert(item=["test_dmo.py"])
trie_tree.insert(item=["base_case", "test_001_from.py"])
trie_tree.insert(item=["base_case", "test_002_link.py"])
trie_tree.insert(item=["base_case", "test_003_iframe.py"])
trie_tree.insert(item=["more_case", "test_004_window.py"])
trie_tree.insert(item=["more_case", "test_005_ddt.py"])
trie_tree.insert(item=["more_case", "test_006_file_ddt.py"])
print(json.dumps(trie_tree.root, indent=2, ensure_ascii=False))
运行结果:
{
"test_dmo.py": {
"is_file": true
},
"base_case": {
"test_001_from.py": {
"is_file": true
},
"test_002_link.py": {
"is_file": true
},
"test_003_iframe.py": {
"is_file": true
}
},
"more_case": {
"test_004_window.py": {
"is_file": true
},
"test_005_ddt.py": {
"is_file": true
},
"test_006_file_ddt.py": {
"is_file": true
}
}
}
运行结果:
{ "test_dmo.py": { "is_file": true }, "base_case": { "test_001_from.py": { "is_file": true }, "test_002_link.py": { "is_file": true }, "test_003_iframe.py": { "is_file": true } }, "more_case": { "test_004_window.py": { "is_file": true }, "test_005_ddt.py": { "is_file": true }, "test_006_file_ddt.py": { "is_file": true } } }