字典去重与排序
发布时间:2020-12-20 10:52:21 所属栏目:Python 来源:网络整理
导读:l=[ {'name':'egon','age':18,'sex':'male'},{'name':'alex','age':73,{'name':'egon','age':20,'sex':'female'},]#1s=set()l1=[]for item in l: val=(item['name'],item['age'],item['sex']) if val not in s: s.add(val) print(s) l1.append(item)print(l1
l=[ {'name':'egon','age':18,'sex':'male'},{'name':'alex','age':73,{'name':'egon','age':20,'sex':'female'},] #1 s=set() l1=[] for item in l: val=(item['name'],item['age'],item['sex']) if val not in s: s.add(val) print(s) l1.append(item) print(l1) #2 def func(items,key=None): s=set() for item in items: val=item if key is None else key(item) if val not in s: s.add(val) yield item print(list(func(l,key=lambda dic:(dic['name'],dic['age'],dic['sex'])))) #3 l1=[] for i in l: if i not in l1: l1.append(i) print(l1) salary_dict = { 'nick': 3000,'jason': 100000,'tank': 5000,'sean': 2000 } salary_list = list(salary_dict.items()) print(salary_list) # [('nick',3000),('jason',100000),('tank',5000),('sean',2000)] # def func(i): # i = ('sean',2000),('nick',100000) # return i[1] # 2000,3000,5000,100000 salary_list.sort(key=lambda i: i[1]) # 内置方法是对原值排序 # # 按照func的规则取出一堆元素2000,100000 # # 然后按照取出的元素排序 print(salary_list) #用字典的值对字典进行排序 import operator x = {1:2,3:4,5:6,7:8} sort_x = sorted(x.items(),key=operator.itemgetter(1)) print(sort_x) # 字典是无序的不可能进行排序,只能转化成另一种方式进行排序,比如元组 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |