Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 附加到第X个维度而不指定维度_Python - Fatal编程技术网

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

Python 附加到第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('/'

我一直在琢磨如何做到以下几点。 我有一个dict
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'}}},不管我之前的答复如何。它就像一个符咒!谢谢