我需要一组{a:{}{b:{},{c:{}}}形式的嵌套字典,其中a、b和c是键。我尝试了以下代码。你知道吗
from collections import defaultdict
def dictizeString(string,dictionary) :
while string.startswith('/'):
string = string[1:]
parts = string.split('/',1)
if len(parts)>1:
branch = dictionary.setdefault(parts[0],[dict()])
dictionary[parts[0]].append(dict())
dictizeString(parts[1], branch)
else:
if dictionary.has_key(parts[0]):
dictionary[parts[0]]=dict()
else:
dictionary[parts[0]]=[dict()]
dictionary[parts[0]].append(dict())
d={}
dictizeString('/a/b/c/d', d)
print d
执行此代码会导致错误“list”对象没有属性“setdefault”。该代码适用于第一次迭代(即a),但在第二次迭代(即b)时抛出上述错误。你知道吗
在代码的最后6行中,append功能适用于else部分,我尝试在if中使用相同的逻辑,但它抛出了一个错误。你知道吗
尝试:
第7行有一条语句,将默认值设置为字典列表,但随后您尝试继续使用它所期望的字典所在的函数。你知道吗
我知道你已经找到了答案,但你也可以做到:
输出变成:
{'a': {'b': {'c': {'d': {}}}}}
相关问题 更多 >
编程相关推荐