zoukankan      html  css  js  c++  java
  • 从零开始的Python学习 知识补充sorted

    sorted()方法

    sorted()可用于任何一个可迭代对象。

    原型为sorted(iterable, cmp=None, key=None, reverse=False)

    iterable:一个可迭代对象;

    cmp:用于比较的函数,比较什么由key决定;

    key:用列表元素的某个属性或函数进行作为关键字,有默认值,迭代集合中的一项;

    reverse:排序规则. reverse = True  降序 或者 reverse = False 升序,有默认值。

    (1)cmp参数

    cmp接受一个函数,如

    def f(a,b)

      return a-b

    如果a逻辑小于b,函数返回负数;a等于b,函数返回0;a大于b,函数返回正数。

    但是在python3中,cmp参数被淘汰了。但是可以使用key参数实现它的功能,本文后面会有介绍。

    (2)key参数

    参数key的使用通常配合lambda,这是一个隐函数,使用要按照固定格式:

    例如可迭代对象的中的元素是一个元组:key = lambda x:x[0],意思按每一个元组的第0个元素排序。

    当然如果可迭代对象中放的是字典,那填上它的键就可以按键对应的值进行排序。

    例如:

    order=[{'no':1,'age':18},{'no':3,'age':19},{'no':2,'age':20}]
    order = sorted(order,key=lambda x:x['no'])
    print(order)
    #输出[{'no': 1, 'age': 18}, {'no': 2, 'age': 20}, {'no': 3, 'age': 19}]

    key中还可以使用函数

    下面的例子是求按列表中元素与51的距离的大小排序。

    order=[98,183,37,122,14,124,65,67]
    def f2(a):
        return abs(53-a)
    order = sorted(order,key=lambda x:f2(x))
    print(order)
    #输出[65, 67, 37, 14, 98, 122, 124, 183]

    (3)reverse参数

    接受False 或者True 表示升序或降序。

    True代表降序。

    注意:sorted不会直接修改传进去的可迭代对象,需要用一个新的对象去存它return的结果。

    result = sorted(list)

  • 相关阅读:
    Web--2019年5月7日移动端随笔
    Web-css3--19年5月5日随笔
    数据库指令----4月10日
    19--3--14--数据处理
    微信小程序全选,微信小程序checkbox,微信小程序购物车
    手机预览微信小程序
    原生H5页面模拟APP左侧滑动删除效果
    微信小程序实例:实现tabs选项卡效果
    CSS3文本溢出显示省略号
    前端自动化之路之gulp,node.js
  • 原文地址:https://www.cnblogs.com/smilepup-hhr/p/9979693.html
Copyright © 2011-2022 走看看