删除python字典中的重复项

我在 python 中有一个字典列表,我想用重复值覆盖旧值。请让我知道我该怎么做。

{'message': [{'name': 'raghav', 'id': 10}, {'name': 'raghav', 'id': 11}]}

输出应该是:

{'message': [ {'name': 'raghav', 'id': 11}]}


茅侃侃
浏览 281回答 2
2回答

芜湖不芜

我不知道您所说的“用重复值覆盖旧值”是什么意思。如果您的意思是只dict从列表中选择第二个,您可以:print({k: [v[1]] for (k, v) in data.items()})如果想法是在您沿着列表移动时使用较新的“id”值更新“name”,那么可能:def merge_records(data):    records = data['message']    users = {}    for record in records:        name = record['name']        id_ = record['id']        users[name] = id_    new_records = []    for name, id_ in users.items():        new_records.append({'name': name, 'id': id_})    return {'message': new_records}但是,如果您可以控制数据的表示方式,则可能会重新考虑。您可能需要不同的数据结构。

慕莱坞森

干得好:d = {'message': [{'name': 'raghav', 'id': 10}, {'name': 'raghav', 'id': 11}]}#loop over outer dictionaryfor key, value in d.items():    d[key] = [dict([t for k in value for t in k.items()])]    print(d)编辑:根据您的要求:d = {'message': [ {'name': 'raghav', 'id': 11}, {'name': 'krish', 'id': 20}, {'name': 'anu', 'id': 30}]}for key, value in d.items():    print [dict((k1,v1)) for k1,v1 in dict([tuple(i.items()) for i in value for val in i.items()]).items()] 
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python