python 基本用法 数组字典根据value去重复

2019-08-07  本文已影响0人  小乔与周瑜

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/

上一篇下一篇

猜你喜欢

热点阅读