1.数组字典根据value去重复
3.5版本
from collections import OrderedDict
a = [ {'name':'zhangsan', 'score': 20}, {'name':'lisi', 'score':25}, {'name':'zhangsan', 'score':30} ]
b = OrderedDict()
for item in a:
b.setdefault(item['name'], {**item, 'freq':0})['freq'] += 1
print(b.values())
# odict_values([{'name': 'zhangsan', 'score': 20, 'freq': 2}, {'name': 'lisi', 'score': 25, 'freq': 1}])
取最新的值加 update即可
temp = b.setdefault(item['name'], {**item, 'freq': 0})
temp.update(**item)
temp['freq'] += 1
注意 **item 这个语法糖是 3.5 以后的,以前版本写成 dict(item, freq=0)
2版本
from collections import OrderedDict
def list_dict_duplicate_removal(list):
b = OrderedDict()
for item in contnet:
b.setdefault(item['salesperson_uid'], dict(item, freq=0))['freq'] += 1
return b.values()
在python中,dict这个数据结构由于hash的特性,是无序的,这在有时候会给我们带来一些麻烦,幸运的是,
collections模块为我们提供了OrderdDict,当你要获取一个有序的字典对象时,用它。
collections 连接https://www.zlovezl.cn/articles/collections-in-python/
网友评论