美文网首页
python 排序sorted2019-07-15

python 排序sorted2019-07-15

作者: 夏树的宝马 | 来源:发表于2019-07-15 16:57 被阅读0次

    sorted(iterable,key,reverse) 函数

    1.iterable 传入需要排序的对象,list,字典都(字典.items())行
    2.key 通过什么排序
    3.bool行是否需要降序,默认false
    由于py3中没有cmp这个参数,可以通过 functools.cmp_to_key() 将 cmp函数 转化为 key
    但是cmp函数需要返回[-1,0,1]这个三个数中的任意一个
    注意:
    1.key可以通过传入一个函数,然后通过传入的函数选择哪个参数进行排列,

    print('*'*20)
    list1 = [(1,'a',23),(2,'b',14),(3,'c',90),(3,'c1',89),(3,'c2',89)]
    list1=sorted(list1,key=lambda x:x[0])
    print(list1)
    

    2.如果需要按多个条件排序,只有第一个条件为True才会按第二个条件排序,依次类推

    print('*'*20)
    list1 = [(1,'a',23),(2,'b',14),(3,'c',90),(3,'c1',89),(3,'c2',89)]
    list1=sorted(list1,key=lambda x:(x[0],x[2]))
    print(list1)
    

    测试:传入一段字符串,按字符的重复次数从排序
    垃圾代码,无惧何喷

    s="初晴落景:晚霞聊自怡,初晴弥可喜。日晃百花色,风动千林翠。池鱼跃不同,园鸟声还异。寄言博通者,知予物外志。"
    
    s_dict={}
    for i in s:
        if s_dict.get(i) is None:
            s_dict[i]=1
            continue
        s_dict[i]=s_dict.get(i)+1
    v_list=[]
    for _,v in s_dict.items():
        v_list.append(v)
    v_list.sort()
    print(v_list)
    print(s_dict)
    result=[]
    for i in set(v_list):
        print(i)
        result.extend([k for k,v in s_dict.items() if v==i])
    print(result)
    
    

    采用标准库装逼

    s="初晴落景:晚霞聊自怡,初晴弥可喜。日晃百花色,风动千林翠。池鱼跃不同,园鸟声还异。寄言博通者,知予物外志。"
    from collections import Counter
    s=Counter(s)
    print("*"*20)
    print(s)
    s=sorted(s.items(),key=lambda v:v[1])
    print(s)
    
    
    

    相关文章

      网友评论

          本文标题:python 排序sorted2019-07-15

          本文链接:https://www.haomeiwen.com/subject/gtwnkctx.html