列表嵌套字典排序去重
python 列表里面嵌套字典,如何去重?
本方法借鉴网络方法,通过排序取出重复中🆔大的数据,如有雷同,敬请谅解!
from collections import OrderedDict a=[{'name': '3', 'id': 3}, {'name': '3', 'id': 10}, {'name': '3', 'id': 17}, {'name': '26', 'id': 26}, {'name': '27', 'id': 27}, {'name': '28', 'id': 28}, {'name': '29', 'id': 29}, {'name': '30', 'id': 30}] s = sorted(a, key=lambda x: x['id'], reverse=True) b = OrderedDict() for item in s: b.setdefault(item['name'],{**item,}) b = list(b.values()) ss = sorted(b, key=lambda x: x['id'], reverse=False) print(ss)
方法中使用了lambda函数,有序字典,sorted 方法,输出结果如下图
如果不使用sorted 方法
from collections import OrderedDict a=[{'name': '3', 'id': 3}, {'name': '3', 'id': 10}, {'name': '3', 'id': 17}, {'name': '26', 'id': 26}, {'name': '27', 'id': 27}, {'name': '28', 'id': 28}, {'name': '29', 'id': 29}, {'name': '30', 'id': 30}] b = OrderedDict() for item in a: b.setdefault(item['name'],{**item,}) b = list(b.values()) print(b)