本文探讨了三种Python方法去除列表中重复元素:使用functools模块的reduce和lambda表达式,自定义函数结合reduce,以及通过json序列化和去重再反序列化。这些方法适用于不同场景,展示了解决列表重复问题的多种途径。
方法一:
- import functools
- list_a = [{"name": "Tom", "age": 18}, {"name": "Jerry", "age": 18}, {"name": "Tom", "age": 18}]
- unique_list = functools.reduce(lambda x, y: y in x and x or x + [y], list_a, [])
-
方法二:
- from functools import reduce
-
- def list_dict_duplicate_removal(data_list):
- run_function = lambda x, y: x if y in x else x + [y]
- return reduce(run_function, [[], ] + data_list)
-
方法三:
- def getNonRepeatList(data):
- for i in range(len(data)):
- data[i] = json.dumps(data[i])
- data = list(set(data))
- for i in range(len(data)):
- data[i] = json.loads(data[i])
- return data
-