代码
a={'k1':['a',2,3]}
b={'k2':[2,'b',4]}
for i in [a,b]:
print(i)
打印出a
和b
的值。但我真的希望它打印字典名称,即
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')
有更好的方法吗?
答案 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'
但要仔细考虑为什么你真的想要这样做。你甚至不想这样做。