l=[ {'name':'egon','age':18,'sex':'male'}, {'name':'alex','age':73,'sex':'male'}, {'name':'egon','age':20,'sex':'female'}, {'name':'egon','age':18,'sex':'male'}, {'name':'egon','age':18,'sex':'male'}, ] #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', 3000),('tank', 5000),('jason', 100000) # return i[1] # 2000,3000,5000,100000 salary_list.sort(key=lambda i: i[1]) # 內置方法是對原值排序 # # 按照func的規則取出一堆元素2000,3000,5000,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) # 字典是無序的不可能進行排序,只能轉化成另外一種方式進行排序,好比元組