得到一本字典的名字

时间:2017-03-15 10:32:35

标签: python dictionary

代码

a={'k1':['a',2,3]}
b={'k2':[2,'b',4]}
for i in [a,b]:
   print(i)

打印出ab的值。但我真的希望它打印字典名称,即

a
b

我目前的解决方案是:

a={'k1':['a',2,3]}
b={'k2':[2,'b',4]}
for i in [a,b]:
    if i is a:
        print('a')
    elif i is b:
        print('b')

有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

无法获取值的名称。也没有必要。

名称是指值。许多名称可以引用相同的值。因此,任何给定对象都不能有“真实名称”,因为所有名称都相同。

考虑

>>> x = 5
>>> y = x
>>> x is y
True

现在,值<5>的名称是什么?这没有意义。

考虑

>>> x = [1,2,3]
>>> y = x[:] # shallow copy of x
>>> x is y
False

现在,列表[1,2,3]的 名称是什么,它存在两次?这没有意义。

如果您迫切希望为词典添加持久名称,请将其添加为键值对,例如

>>> mydic = {1:2, 'name':'Bob'}
>>> mydic['name']
'Bob'

但要仔细考虑为什么你真的想要这样做。你甚至不想这样做。