使用 set() 函数对列表进行去重,但是 set() 函数只能对不可变类型进行去重,所以需要将列表中的字典转化为元组,然后再进行去重,最后再将元组转化为字典。

代码如下:

lst = [{'name': '张三', 'age': 20}, {'name': '李四', 'age': 22}, {'name': '张三', 'age': 25}, {'name': '王五', 'age': 21}]
new_lst = []
name_set = set()
for d in lst:
    if d['name'] not in name_set:
        new_lst.append(d)
        name_set.add(d['name'])
new_lst = [tuple(d.items()) for d in new_lst]
new_lst = [dict(t) for t in set(new_lst)]
print(new_lst)

输出结果为:

[{'name': '张三', 'age': 20}, {'name': '李四', 'age': 22}, {'name': '王五', 'age': 21}]
Python 列表去重:如何去除字典中重复的'name'属性

原文地址: https://www.cveoy.top/t/topic/nw5H 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录