我想基于现有数组创建嵌套字典(== javascript对象)。
例如:
input_array =["hello", "how", "are", "you", "?"]
output_object =
{ "hello":
{ "how":
{ "are":
{ "you":
{ "?": {}
}
}
}
}
}
在JavaScript中,解决方案类似于:
for( var i = 0; i < input_array.length; i++ ) {
output_object[ input_array[i] ] = {};
output_object = output_object[ input_array[i] ]
};
答案 0 :(得分:4)
非常相似:
d = d2 = {}
for i in input_array:
d2[i] = {}
d2 = d2[i]
d
# {'hello': {'how': {'are': {'you': {'?': {}}}}}}
答案 1 :(得分:3)
您可以使用递归:
input_array =["hello", "how", "are", "you", "?"]
def to_dict(d):
return {d[0]:{} if not d[1:] else to_dict(d[1:])}
output_object = to_dict(input_array)
输出:
{'hello': {'how': {'are': {'you': {'?': {}}}}}}
答案 2 :(得分:1)
使用递归函数:
>>> def custom_json(array):
if not array:
return {}
else:
key = array.pop(0)
return {key : custom_json(array)}
输出:
>>> input_array =["hello", "how", "are", "you", "?"]
>>> custom_json(input_array)
{'hello': {'how': {'are': {'you': {'?': {}}}}}}