python从字典中删除那些具有相同值的键

标签 python python-2.7

嘿,我有像下面这样的字典

dicts = {
'met_293':['81.0175','4','7','7','29.76','23','1','0','22','28.57','2','[KG]EHY' ],
'met_394':['79.9579','4','7','7','29.76','18','3','0','15','28.57','2','EHY[ILV]'],
'met_309':['81.0175','4','7','7','29.76','23','1','0','22','28.57','2','[KG]EHY' ],
'met_387':['79.9579','4','7','7','29.76','18','3','0','15','28.57','2','EHY[ILV]']
}

我想删除具有相同值的键,例如“met_293”和“met_309”,这两个键在第 12 个位置具有相同的值,即“[KG]EHY”,所以我想要这样的字典

{
'met_293':['81.0175','4','7','7','29.76','23','1','0','22','28.57','2','[KG]EHY'],
'met_394':['79.9579','4','7','7','29.76','18','3','0','15','28.57','2','EHY[ILV]']
}

任何帮助!!! 谢谢

最佳答案

你可以使用 set 和一个字典理解:

>>> dicts = {'met_293': ['81.0175','4','7','7','29.76','23','1','0','22','28.57','2','[KG]EHY'],'met_394': ['79.9579','4','7','7','29.76','18','3','0','15','28.57','2','EHY[ILV]'],'met_309': ['81.0175','4','7','7','29.76','23','1','0','22','28.57','2','[KG]EHY'],'met_387': ['79.9579','4','7','7','29.76','18','3','0','15','28.57','2','EHY[ILV]']}
>>> seen = set()
>>> {k:v for k,v in dicts.iteritems() 
                                 if v[11] not in seen and not seen.add(v[11])}
{'met_394': ['79.9579', '4', '7', '7', '29.76', '18', '3', '0', '15', '28.57', '2', 'EHY[ILV]'],
 'met_293': ['81.0175', '4', '7', '7', '29.76', '23', '1', '0', '22', '28.57', '2', '[KG]EHY']}

上面的代码等价于:

>>> dic = {}
>>> seen = set()
>>> for k,v in dicts.iteritems():
...     if v[11] not in seen:
...         dic[k] = v
...         seen.add(v[11])
...         
>>> dic
{'met_394': ['79.9579', '4', '7', '7', '29.76', '18', '3', '0', '15', '28.57', '2', 'EHY[ILV]'],
 'met_293': ['81.0175', '4', '7', '7', '29.76', '23', '1', '0', '22', '28.57', '2', '[KG]EHY']}

关于python从字典中删除那些具有相同值的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17368121/

相关文章:

python - 如果其中一个线程先结束,则结束python多线程

python - 映射后的数字格式?

python - 使用导入的自定义包加载 iPython

python-2.7 - 如何在 QLineEdit 中隐藏密码

python - 在数据帧上执行验证(表达式)

python - python中的xml解析

python - 如何使所有 python 导入/错误可见?

python - 橙2.7安装 "UnsatisfiableError"

python - 用 Python 进行机器学习来玩西洋跳棋?

python - 统一python 2/3版本支持类型