【发布时间】:2021-11-24 21:01:45
【问题描述】:
我正在尝试删除 python 字典中的重复值。
我们有一个如下所示的 sn-p,
我想使用“数字”键并通过更新它们来删除重复项。
[
{
'Message': 'Fetched',
'Code': '200',
'Number': '20290775'
},
{
'Message': 'Fetched',
'Code': '202',
'Number': '20290776'
},
{
'Message': '',
'Code': '',
'Number': '20290775'
},
{
'Message': '',
'Code': '',
'Number': '20290776'
},
{
'Message': '',
'Code': '',
'Number': '20290777'
},
{
'Message': '',
'Code': '',
'Number': '20290778'
},
{
'Message': '',
'Code': '',
'Number': '20556729'
}
]
我们如何生成下面的sn-p
[
{
'Message': 'Fetched',
'Code': '200',
'Number': '20290775'
},
{
'Message': 'Fetched',
'Code': '200',
'Number': '20290776'
},
{
'Message': '',
'Code': '',
'Number': '20290777'
},
{
'Message': '',
'Code': '',
'Number': '20290778'
},
{
'Message': '',
'Code': '',
'Number': '20556729'
}
]
是否可以生成和删除重复的字典值?
【问题讨论】:
-
为什么不把它变成一个以
Number为关键字的字典而不是一个列表呢?删除重复项的最简单方法是将构建这样的字典作为中间步骤——如果您可以选择首先将其设为字典,那么整个问题就会消失! -
当然是可能。当键匹配但其他条目不匹配时,您如何决定保留哪个版本?到目前为止您尝试了什么?
-
当有“数字”匹配时,我想比较两个字典并使其成为单个字典。 @DavisHerring
-
如果你可以使用 Pandas:
pd.DataFrame(lst).sort_values(['Number', 'Code', 'Message']).drop_duplicates('Number', keep='last') -
请使用tour、阅读what's on-topic here、How to Ask和question checklist,并提供minimal reproducible example。 “为我实现此功能”与此站点无关,因为 SO 不是免费的在线编码服务。你必须诚实地尝试,然后就你的算法或技术提出一个具体问题。
标签: python python-3.x list dictionary