Skip to main content
 首页 » 编程设计

python之当应该有一个值python时,字典不返回

2025年05月04日10dflying

我有一个小样本数据集:

import pandas as pd 
 
 
df = {'ID': ['H576','H577','H578','H600', 'H700'], 
  'CD': ['AAAAAAA', 'BBBBB', 'CCCCCC','DDDDDD', 'EEEEEEE']} 
 
df = pd.DataFrame(df) 

我用 pandas 读入了这个,并将这两列转换成一个字典,其中“ID”是键,“CD”是值:

dictionary = df.set_index('ID')['CD'].to_dict() 

因为我需要做其他事情(我不会详细介绍,这是一个很长的故事,我的实际脚本是涉及很多其他事情的长脚本),我需要将字典保存为值键对,反转:

reversedic = dict() 
for key, val in dictionary.items(): 
        reversedic.pop(val, key)    #python 2.7 uses dic.append() but for the python I have which is 3.5, 'dict' object has no attribute 'append', so is pop the correct code?  

稍后在我的较大脚本中,当给定“CD”值时,我将需要获取“ID”

z = reversedic.get('AAAAAAA') 
print(z) 

这应该返回 H576,但它返回了“无”。

请您参考如下方法:

为什么不直接:

reverseDict = {v:k for k,v in dictionary.iteritems()} 
 
In [14]: reverseDict['AAAAAAA'] 
Out[14]: 'H576'