最灵活的转换方式是什么:
A = [a1, a2, a3, a4, a5]
其中" A"可以是包含任意数量元素的列表
B = {a1: {a2: {a3: {a4: {a5: y}}}}}
其中y是某个变量。
答案 0 :(得分:3)
def build_dict(A, y):
for s in reversed(A):
y = {s: y}
return y
A = ['a1', 'a2', 'a3', 'a4', 'a5']
y = 'some value'
print(build_dict(A, y))
输出:
{'a1': {'a2': {'a3': {'a4': {'a5': 'some value'}}}}}
使用reduce
(Python 3.x中的functools.reduce
)替代方案:
>>> A = ['a1', 'a2', 'a3', 'a4', 'a5']
>>> y = 'some value'
>>> reduce(lambda x, s: {s: x}, reversed(A), y)
{'a1': {'a2': {'a3': {'a4': {'a5': 'some value'}}}}}