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']}
如果你告诉我们你已经尝试了什么,你将更有可能得到答案。你的意思是移除一把钥匙,对吗?如果你告诉我们你已经尝试了什么,你将更有可能得到答案。你的意思是移除一把钥匙,对吗?