美文网首页
【高级特性】45、自定义对象的排序

【高级特性】45、自定义对象的排序

作者: 看远方的星 | 来源:发表于2021-05-28 16:35 被阅读0次

目录
一、列表排序
二、内置排序函数
三、特殊方法
四、可扩展的“大小”比较及排序

一、列表排序

  • 列表方法sort()
    对原列表进行排序,改变原列表内容
    如果列表中的元素都是数字,默认按升序排序
    通过添加参数reverse=True可改为降序排列
    image.png
如果元素都是字符串,则会按照字母表顺序排列: image.png

二、内置排序函数

  • 通用函数sorted()
    类似sort(),但返回的是排好序的列表副本,原列表内容不变
    image.png

只有当列表中的所有元素都是同一种类型时,sort()sorted()才会正常工作

三、特殊方法

  • 特殊方法_lt_
    由于Python的可扩展性,每种数据类型可以定义特殊方法
    def_lt_(self,y)
    返回True视为比y“小”,排在前
    返回False视为比y“大”,排在后
    只要类定义中定义了特殊方法_lt_,任何自定义类都可以使用x<y这样的比较

四、可扩展的“大小”比较及排序

  • 例子:Student
    姓名name,成绩grade
  • 按照成绩由高到低排序


    image.png
  • 构造一个列表,加入Student对象


    image.png
  • 直接调用列表sort方法
    可以根据_lt_定义排序

  • 直接检验Student对象的大小
    S[i]<s[j]

  • 另外可以定义其它比较符
    _gt_

    image.png
  • 重新定义_lt_方法,改为比较姓名
    这样sort方法就能按照姓名来排序

    image.png
    image.png

相关文章

  • 【高级特性】45、自定义对象的排序

    目录一、列表排序二、内置排序函数三、特殊方法四、可扩展的“大小”比较及排序 一、列表排序 列表方法sort()对原...

  • 数据透视表仪表盘10天集训营 Day3-朱一清

    今日温故知新要点: 自定义排序 文件-》选项-〉高级-》自定义排序-〉导入列表 选择地区下拉小箭头-》其他排序选项...

  • Redis高级特性——排序

    排序 对于排序的场景,在业务中会大量使用到,对于Redis,如果使用了有序集合,那么排序问题很容易解决,并且得分可...

  • 数据透视表-排序

    1.手动排序 拖拽 移动:选中内容,右键选择移动 2.自动排序 选择部门->其他排序 3.自定义排序 文件->高级...

  • 切片器

    隐藏切片器 切片器的自定义排序 需要到 文件 -- 选项 -- 高级 -- 编辑自定义列表 中进行设置添加自定义...

  • PHP对象的高级特性

    对象的比较 当同一个类的两个实例的所有属性都相等时,可以使用比较运算符==进行判断。当需要判断两个变量是否为同一个...

  • TreeMap源码分析

    一.TreeMap的特性 TreeMap是有序的,可以自定义排序规则,如果不指定则按照默认的规则排序 二.Tree...

  • 排序与筛选的高级用法:

    ①自定义序列的排序: 打开文件~选项~高级~编辑自定义列表~把自定义序列区域选中放入导入框中点“导入”~确定。 使...

  • 阶段 1:Java语言基础

    一. Java 编程入门 二. Java面向对象编程 三. Java语言高级特性

  • 面向对象高级特性

    面向对象的主要特征:继承,封装,多态 继承 含义: 在Java中定义一个类时,让该类通过关键字extends继承一...

网友评论

      本文标题:【高级特性】45、自定义对象的排序

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