考虑这个短小的Python字典列表(第一个字典项是字符串,第二个字典项是Widget对象):
我想浏览那个列表并删除重复项,这个SO问题已经为我解答了:。
raw_results =
[{'src': 'tag', 'widget': <Widget: to complete a form today>}, # dupe 1a
{'src': 'tag', 'widget': <Widget: a newspaper>}, # dupe 2a
{'src': 'zip', 'widget': <Widget: to complete a form today>}, # dupe 1b
{'src': 'zip', 'widget': <Widget: the new Jack Johnson album>},
{'src': 'zip', 'widget': <Widget: a newspaper>}, # dupe 2b
{'src': 'zip', 'widget': <Widget: premium dog food >}]
我想浏览那个列表并删除重复项,这个SO问题已经为我解答了:。
known_widgets= set()
processed_results = []
for x in raw_results:
widget = x['widget']
if widget in known_widgets:
continue
else:
processed_results.append(x)
known_widgets.add(widget)
然而,当我删除重复行(例如重复项1b)后,我想要更改剩余重复项(例如重复项1a)的"src"数据。 我想将已删除的重复项的"src"附加到原始项上。这是我想得到的结果:
processed_results =
[{'src': 'tag-zip', 'widget': <Widget: to complete a form today>}, # dupe 1a
{'src': 'tag-zip', 'widget': <Widget: a newspaper>}, # dupe 2a
{'src': 'zip', 'widget': <Widget: the new Jack Johnson album>},
{'src': 'zip', 'widget': <Widget: premium dog food >}]
我相信这很容易做到,但在喝了太多咖啡并花了许多时间围绕这个问题后,我的头脑已经转晕了。我非常希望并感激专家的帮助。谢谢!