Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python从字典中删除具有相同值的键_Python_Python 2.7 - Fatal编程技术网

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

python从字典中删除具有相同值的键,python,python-2.7,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

嘿,我有一本跟下面一样的字典

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']}

您可以使用
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']}

如果你告诉我们你已经尝试了什么,你将更有可能得到答案。你的意思是移除一把钥匙,对吗?如果你告诉我们你已经尝试了什么,你将更有可能得到答案。你的意思是移除一把钥匙,对吗?