当前位置:  开发笔记 > 编程语言 > 正文

Python:如何提取字典条目的变量名?

如何解决《Python:如何提取字典条目的变量名?》经验,为你挑选了2个好方法。

我想知道如何找到字典元素的变量名称:

例如:

    >>>dict1={}
    >>>dict2={}

    >>>dict1['0001']='0002'
    >>>dict2['nth_dict_item']=dict1
    >>>print dict2
    {'nth_dict_item': {'0001': '0002'}}
    >>>print dict2['nth_dict_item']
    {'001': '002'}

我怎样才能告诉我dict2 ['nth_dict_item']是或正在引用"dict1"?我想要它引用的数据结构的名称而不是数据本身.

如果我将id(dict1)的输出与id(dict2 ['nth_dict_item'])进行比较,我发现它们是相同的.

但是,如何将该ID转换为变量名?是否有更直接/更清晰的方法来获取我想知道的信息?

我敢肯定我只是忽略了一个能让我的生活轻松的功能,但我对Python很陌生:)

任何帮助表示赞赏,谢谢!

有关

python,我可以打印原始的var名称吗?

如何在python中打印变量名?


更新:这就是为什么我希望这个工作:

我正在尝试制作一个使用类似数据库的字典的应用程序.我希望这个伪代码的功能起作用:

dict_1={}
dict_2={}
dict_3={}

dict_1["FooBar1.avi"]=[movie_duration,movie_type,comments]
dict_2["FooBar2.avi"]=[movie_duration,movie_type,comments]
dict_3["FooBar3.avi"]=[movie_duration,movie_type,comments]

dict_database[SomeUniqueIdentifier1]=dict_1
dict_database[SomeUniqueIdentifier2]=dict_2
dict_database[SomeUniqueIdentifier3]=dict_3

SomeUniqueIdentifier#将是一个唯一值,我将其用作数据库键/ unqiueID来查找条目.

我希望能够通过以下方式更新FooBar1.avi的"评论"字段:

WhichDict= dict_database[SomeUniqueIdentifier1]
WhichDict[WhichDict.keys()[0]][2]='newcomment'

而不是必须做:

dict_database['SomeUniqueIdentifier1'][dict_database['SomeUniqueIdentifier1'].keys()[0]][2]='newcomment'

感谢大家.我现在明白我误解了很多基础知识(全脑屁).将返回并修复设计.谢谢大家!



1> zenazn..:

变量名只是一个名称 - 就程序而言它没有任何实际意义,除非是程序员的方便(这在Python中并不完全正确,但请耐心等待).就Python解释器而言,名称dict1只是程序员告诉Python查看内存地址的方式0x1234.

此外,将内存地址(0x1234)转换回变量名(dict1)的想法没有意义,特别是考虑到多个变量名可以引用同一个对象:

dict1 = {...}
dictCopy = dict1

现在dictCopy和字典的名称一样多dict1- 它们都引用相同的东西.如果您要查找的函数存在,Python应选择哪个名称?



2> Miles..:

添加什么zenazn说:

但是,如何将该ID转换为变量名?

简短的回答是你不想真的想要.如果您认为需要,那么您的程序设计就会出现问题.如果您更具体地告诉我们您要解决的问题,我们可以帮助您找到更好的方法来实现它.

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有