这是我的2个词典:
dictName={5159:'Cube',1007455:'Subdivision Surface'}
dictObj={5159: 7,1007455: 2}
我想得到的结果是:
立方体:7,细分曲面:2
我无法想象如何用他们的钥匙实现这一目标。
>>> for k,v in dictName.iteritems():
... result[v] = dictObj[k]
...
>>> result
{'Cube': 7, 'Subdivision Surface': 2}
>>>
你可以这样做:
dictName={5159:'Cube',1007455:'Subdivision Surface'}
dictObj={5159: 7,1007455: 2}
for k, v in dictName.items():
if k in dictObj:
print(f'{dictName[k]}: {dictObj[k]}')
并为Python 2(阅读问题后):
dictName={5159:'Cube',1007455:'Subdivision Surface'}
dictObj={5159: 7,1007455: 2}
for k, v in dictName.iteritems():
if k in dictObj:
print '%s : %s' % (dictName[k], dictObj[k])
..还会发现两个词典中密钥不相互关联的任何问题。
列表理解更快更容易:
solution = {dictName[key_name]:dictObj[key_obj]
for key_name in dictName.keys() for key_obj in dictObj.keys()
if key_name == key_obj}
更新:您需要检查相同的名称,因此,双列表理解。