假设我有一个看起来像这样的列表
['foo', 'bar', 'baz']
此列表包含嵌套的键列表。从这个列表中,我想创建一个这样的字典:
{"foo": {"bar": {"baz": {}}}
我该怎么做?
答案 0 :(得分:1)
这是一个简单的递归函数:
def nest(l, d=None):
if d is None: d = {}
k = l.pop()
return l and nest(l, {k: d}) or {k: d}
要调用对原始列表没有副作用的函数,可以传入浅切片副本:
nest(l[:])
答案 1 :(得分:1)
为了让程序可读,我稍微修改了阶乘。 因为学习如何使用Recursion,Factorial和Fibonacci对初学者来说是如此基础。
a = ['foo', 'bar', 'baz']
def recursion(arr):
if len(arr)==0:
return {}
else:
key = arr.pop()
return {key: recursion(arr)}
print recursion(a)