我正在使用这个gist's defaultdict 单行树。
def tree(): return defaultdict(tree)
目前,您必须为要添加的每个节点提供单独的 []
。
即:
users = tree()
users['harold']['username']['hrldcpr']
users['handler']['username']['matthandlersux']
<小时/>
我的问题是,我如何能够展平输入,以便我可以提供一个列表来实现相同的结果?
即:
users = tree()
users['harold', 'username', 'hrldcpr']
users['handler', 'username', 'matthandlersux']
感谢您的帮助!
最佳答案
您可以简单地定义一个函数,例如insert
,通过提供list
和tree
作为参数来创建节点。
def insert(tree, List):
for node in List:
tree = tree[node]
users = tree()
insert(users, ['harold', 'username', 'hrldcpr'])
将创建一个结构为 {'harold' : {'username' : {'hrldcp' : {} } } }
关于使用 defaultdict 的 Python 单行树。如何减少所需参数的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26098355/