加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

字典去重与排序

发布时间: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)
# 字典是无序的不可能进行排序,只能转化成另一种方式进行排序,比如元组

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读