我想知道如何找到字典元素的变量名称:
例如:
>>>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'
感谢大家.我现在明白我误解了很多基础知识(全脑屁).将返回并修复设计.谢谢大家!
变量名只是一个名称 - 就程序而言它没有任何实际意义,除非是程序员的方便(这在Python中并不完全正确,但请耐心等待).就Python解释器而言,名称dict1
只是程序员告诉Python查看内存地址的方式0x1234
.
此外,将内存地址(0x1234
)转换回变量名(dict1
)的想法没有意义,特别是考虑到多个变量名可以引用同一个对象:
dict1 = {...} dictCopy = dict1
现在dictCopy
和字典的名称一样多dict1
- 它们都引用相同的东西.如果您要查找的函数存在,Python应选择哪个名称?
添加什么zenazn说:
但是,如何将该ID转换为变量名?
简短的回答是你不想真的想要.如果您认为需要,那么您的程序设计就会出现问题.如果您更具体地告诉我们您要解决的问题,我们可以帮助您找到更好的方法来实现它.