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)
这段适合用于字典列表去重。
看了看现在很多的去重用法,大概思路都是这样。
(附上原文连接)
但是随着数据量的增长,这种方法所需要的时间也越来越长,没搞懂Python中的 in 的这个底层是什么, 一万条数据居然花了我两秒。
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
这段几乎是傻瓜式的去重,只适合于列表中的字典key值顺序都一样,格式也都统一的情况,但是一万条数据花了我0.07秒,速度上还是有保障的。