基于点表示法的Python字典操作

2024-04-24 10:37:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做的是从一个字符串创建一个“字典路径”。我不认为这是一个正确的术语,但基本上,如果我有一本字典,它是这样的:

'myDict'{
    'classes':{
        'students':{
            'grades':{
                'grade':'A'
            }
        }  
    }
}

我有一个名为current_dict的变量,它现在有myDict,所以current_dict = myDict,还有一个存储为"classes.students.grades"的字符串,我想操作这个字符串,这样我就有了[classes][students][grades]。但是,我希望能够使用它来重新分配current_dict。所以,我想说current_dict = myDict['classes']['students']['grades']。我试图将字符串转换为"[classes][students][grades]",但这行不通,因为它将整个字符串标识为一个字符串,包括括号。如何操作"classes.students.grades"以便重新分配current_dict = myDict['classes']['students]['grades']?所以,在我完成这些之后,current_dict将是grades,看起来像:

^{pr2}$

Tags: 字符串路径字典currentdictmydict标识classes
2条回答

像这样?在

current_dict = myDict
mystring = "classes.students.grades"
myPath = mystring.split(".")
for part in myPath:
    current_dict = current_dict[part]

但我想如果你告诉我们你想要这个做什么,可能有一个更简单的方法。在

试试这个:

string1='classes.students.grades'
string2=string1.split('.')
myDict[string2[0]][string2[1]][string2[2]]['grade2']='B'
myDict

我的输出是

^{pr2}$

注意,我把字典里的年级改成了1年级。为什么不使用熊猫数据帧?在

相关问题 更多 >