我很难搞清楚如何做以下事情。
我有一个字典x = {}
。我还有两个字符串'a/b/c/d'
和'e/f/g'
。
在每种情况下,我都想为dict x添加值,例如x[a][b][c] = 'd'
和x[e][f] = 'g'
。
有没有办法告诉Python弄清楚我想要多深入一点' d'或者' g'无需指定完整路径?
我目前的解决方案看起来非常难看,我正在寻找更好的方法来实现这一目标。
x = {'a': {'b': {'c': {}}}, 'e': {'f': {}}}
s = 'a/b/c/d'.split('/')
if len(s) == 4:
x[s[0]][s[1]][s[2]] = s[3]
elif len(s) == 3: #x[e][f] case
x[s[0]][s[1]] = s[2]
答案 0 :(得分:2)
你可以使用for循环:
keys = s.split('/')
d = x
for key in keys[:-2]:
d = d [key]
d[keys[-2]] = keys[-1]