使用defaultdict的Python单行树。如何减少所需的参数数量?

时间:2014-09-29 11:02:28

标签: python list dictionary defaultdict autovivification

我正在使用这个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']

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您可以通过提供insertlist作为参数来简单地定义一个函数,比如tree来创建节点。

def insert(tree, List):
    for node in List:
        tree = tree[node]

users = tree()
insert(users, ['harold', 'username', 'hrldcpr'])

会将结构创建为{'harold' : {'username' : {'hrldcp' : {} } } }