Python 附加到第X个维度而不指定维度
我一直在琢磨如何做到以下几点。 我有一个dictPython 附加到第X个维度而不指定维度,python,Python,我一直在琢磨如何做到以下几点。 我有一个dictx={}。我还有两个字符串'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('/'
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]
您可以使用for循环:
keys = s.split('/')
d = x
for key in keys[:-2]:
d = d [key]
d[keys[-2]] = keys[-1]
您可以使用for循环:
keys = s.split('/')
d = x
for key in keys[:-2]:
d = d [key]
d[keys[-2]] = keys[-1]
根据您的用例,可能有不同的方法。你需要这个做什么?为什么不只是一个以{'abc':None,'ef':None}为键的dict?@kazemakase,我需要创建完整的目录结构,通过web ui链接迭代到这些目录。@AbhishekJebaraj,a,b和c可以有很多嵌套字典。在我的例子中,它们是目录,我无法访问存储它们的文件系统。根据您的使用情况,可能有不同的方法。你需要这个做什么?为什么不只是一个以{'abc':None,'ef':None}为键的dict?@kazemakase,我需要创建完整的目录结构,通过web ui链接迭代到这些目录。@AbhishekJebaraj,a,b和c可以有很多嵌套字典。在我的例子中,它们是目录,我无法访问存储它们的文件系统。谢谢,但这并不是我想要的。对于s=['a','b','c','d'],结果是{'c':'d'},但我希望它是{'a':{'b':{'c':'d'}}},不管我之前的答复如何。它就像一个符咒!谢谢谢谢,但这不是我想要的。对于s=['a','b','c','d'],结果是{'c':'d'},但我希望它是{'a':{'b':{'c':'d'}}},不管我之前的答复如何。它就像一个符咒!谢谢