zoukankan      html  css  js  c++  java
  • Python-sorted函数

    一.sorted函数

    1.1解释

    >>> help(sorted)
    Help on built-in function sorted in module __builtin__:

    sorted(...)
        sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list

    返回副本,原始输入不变

    1.2参数说明

    iterable:是可迭代类型,即要排序的对象,不一定是List
    cmp:用于比较的函数,比较什么由key决定;
    key:用列表元素的某个属性或函数进行作为关键字;即要比较的具体元素!如果没有,默认为iterable中元素
    reverse:排序规则. reverse = True  降序 或者 reverse = False 升序,默认是升序!
    返回值:是一个经过排序的可迭代类型,与iterable一样。

    1.3实例理解:据实例加深sorted的用法及理解。

    1.t_list = [4, -5, 7, 1, -3, 2, -9]
    if __name__ == '__main__':
        print(sorted(t_list))
        # 根据绝对值升序排序!
        print(sorted(t_list, key=lambda key: abs(key)))

    2. students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10),]  

    2.1 用key函数排序:返回由tuple组成的list

     sorted(students, key=lambda student : student[2])   # sort by age  

    输出:[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]  

    2.2 用cmp函数排序:

    sorted(students, cmp=lambda x,y : cmp(x[2], y[2])) # sort by age  

    输出:[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]  

    二、sort函数

    1.函数解释

    >>> help(list.sort)
    Help on method_descriptor:

    sort(...)
        L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
        cmp(x, y) -> -1, 0, 1

    2.参数说明:同sorted

    3.举例理解:

    (1)按照元素长度排序

    L = [{1:5,3:4},{1:3,6:3},{1:1,2:4,5:6},{1:9}]

    def f(x):
        return len(x)
    sort(key=f)
    print L
     
    输出:
    [{1: 9}, {1: 5, 3: 4}, {1: 3, 6: 3}, {1: 1, 2: 4, 5: 6}]
    (2)按照每个字典元素里面key为1的元素的值排序
    L = [{1:5,3:4},{1:3,6:3},{1:1,2:4,5:6},{1:9}]
    def f2(a,b):
        return a[1]-b[1]
    L.sort(cmp=f2)
    print L
    三、sort和sorted区别:
    最大区别:sort对原List进行修改,而sorted是输出的副本。
    参考:https://www.cnblogs.com/sysu-blackbear/p/3283993.html

  • 相关阅读:
    E437: terminal capability "cm" required 错误出现的原因和解决方法
    IDEA 配置svn及使用
    IDEA 2018.3.3注册方法-2100年
    三大UML建模工具Visio、Rational Rose、PowerDesign的区别
    地图展示聚合效果Leaflet.markercluster
    Idea设置Maven报错:Unable to import maven project: See logs for details
    Netflix大部分的推荐机制都是采用机器学习的算法
    Netflix推荐系统:从评分预测到消费者法则
    Netflix推荐系统的最新解读:算法、商业价值与创新
    推荐系统算法总结
  • 原文地址:https://www.cnblogs.com/dLarger/p/10735307.html
Copyright © 2011-2022 走看看