附加到第X个维度而不指定维度

时间:2017-02-22 09:59:59

标签: python

我很难搞清楚如何做以下事情。 我有一个字典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]

1 个答案:

答案 0 :(得分:2)

你可以使用for循环:

keys = s.split('/')
d = x
for key in keys[:-2]:
    d = d [key]
d[keys[-2]] = keys[-1]