• 【Python】使用 pyecharts 模块绘制动态时间线柱状图 ① ( 列表排序 | 使用 sorted 函数对容器进行排序 | 使用 list.sort 函数对列表进行排序 | 设置排序函数 )



    pyecharts 画廊网站 : https://gallery.pyecharts.org/#/

    • 在该网站可查看官方示例




    一、列表排序




    1、使用 sorted 函数对容器进行排序


    在之前的博客 【Python】数据容器总结 ② ( 数据容器元素排序 | 字符串大小比较 | 字符大小比较 | 长短一样的字符串大小比较 | 长短不一样的字符串大小比较 ) 中 , 介绍了使用 sorted 函数 对容器中的元素进行排序 ;


    sorted 函数语法如下 :

    sorted(iterable, key=None, reverse=False)
    
    • 1
    • iterable 是要排序的 Python 容器变量 ;
    • key 是一个可选的函数 , 用于指定排序的关键字 ;
    • reverse 是一个可选的布尔值 , 用于指定是否按照逆序排序 ;

    sorted 函数排序 代码示例 :

    """
    sorted 函数代码示例
    """
    
    
    # 排序列表
    lst = [3, 1, 4, 1, 5, 9, 2]
    sorted_lst = sorted(lst)
    print(sorted_lst)  # 输出:[1, 1, 2, 3, 4, 5, 9]
    
    # 按照元素大小逆序排序  
    reverse_sorted_lst = sorted(lst, reverse=True)
    print(reverse_sorted_lst)  # 输出:[9, 5, 4, 3, 2, 1, 1]
    
    # 按照字符串长度排序  
    str_lst = ["Joe", "Trump", "Tom", "Jerry"]
    sorted_str_lst = sorted(str_lst, key=len)
    print(sorted_str_lst)  # 输出:['Joe', 'Tom', 'Trump', 'Jerry']
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    执行结果 :

    D:\001_Develop\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/Hello.py
    [1, 1, 2, 3, 4, 5, 9]
    [9, 5, 4, 3, 2, 1, 1]
    ['Joe', 'Tom', 'Trump', 'Jerry']
    
    Process finished with exit code 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述


    2、使用 list.sort 函数对列表进行排序


    在数据处理中 , 经常需要对 列表 进行排序 ;

    如果在排序的同时 , 还要指定排序规则 , 那么 就不能使用 sorted 函数 了 , 该函数无法指定排序规则 ;

    这里引入 list.sort 方法 , 可以完成对 列表 容器的排序 , 同时还可以指定排序规则 ;


    list.sort 方法 会修改原始列表并返回 None ;


    list.sort 函数 基本语法如下 :

    list.sort(key=None, reverse=False)
    
    • 1
    • key 参数 是可选参数 , 通过该关键字可指定一个排序函数 , 该函数将用于比较列表中的元素 ;

      • 指定的排序函数应该接受一个参数并返回一个值 , 表示该参数的比较值 ;
      • 如果没有指定 key 比较函数 , 则默认按元素的值进行比较 ;
    • reverse 参数 也是 可选参数 , 参数类型是布尔值类型 , 指定是否按照逆序排序 ;

      • 如果设置为 True,则从大到小排序 ;
      • 如果设置为 False,则从小到大排序 ;
      • 默认值为 False ;
    • 返回值 为 None ;


    代码示例 :

    """
    sort 函数代码示例
    """
    
    lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
    lst.sort()
    print(lst)  # 输出:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    执行结果 :

    D:\001_Develop\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/Hello.py
    [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
    
    Process finished with exit code 0
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述


    3、使用 list.sort 函数对列表进行排序 - 设置排序函数


    list.sort 函数 的 key 参数 , 需要传入一个排序函数 , 该函数的规则如下 :

    • 指定的排序函数应该 接受一个参数 并 返回一个值 , 该返回值就是列表元素的比较值 ;
    • 返回的 比较值 应该是与 列表元素相关 , 一般是由列表元素 经过一系列计算得到 ;
    • 如果没有指定 key 比较函数 , 则默认按元素的值进行比较 ;

    下面的代码中 , 要比较的列表容器是 :

    # 要排序的列表容器
    lst = [["Tom", 18], ["Jerry", 12], ["Trump", 80], ["Joe", 72]]
    
    • 1
    • 2

    该列表中的元素是另外一个列表 , 内层列表规则是 , 第一个元素是字符串 , 第二个元素是 数值 ;

    排序的规则就是根据内层列表的第二个元素 数值类型 元素 进行排序 ;


    排序函数如下 : 根据内层列表的第二个元素 数值类型 元素 进行排序 , 直接将内层列表的第二个元素返回即可 ;

    def sort_key_fun(element):
        """
        传入列表容器的元素, 返回该元素的一个表达式, 也就是按照什么规则进行排序
        按照该元素的第 1 个元素进行排序
        :param element: 列表元素
        :return:    列表元素排序依据
        """
        return element[1]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    代码示例 :

    """
    sort 函数代码示例
    """
    
    # 要排序的列表容器
    lst = [["Tom", 18], ["Jerry", 12], ["Trump", 80], ["Joe", 72]]
    
    
    def sort_key_fun(element):
        """
        传入列表容器的元素, 返回该元素的一个表达式, 也就是按照什么规则进行排序
        按照该元素的第 1 个元素进行排序
        :param element: 列表元素
        :return:    列表元素排序依据
        """
        return element[1]
    
    
    lst.sort(key=sort_key_fun, reverse=True)
    print(lst)  # 输出:[['Trump', 80], ['Joe', 72], ['Tom', 18], ['Jerry', 12]]
    
    lst.sort(key=sort_key_fun, reverse=False)
    print(lst)  # 输出:[['Jerry', 12], ['Tom', 18], ['Joe', 72], ['Trump', 80]]
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    执行结果 :

    D:\001_Develop\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/Hello.py
    [['Trump', 80], ['Joe', 72], ['Tom', 18], ['Jerry', 12]]
    [['Jerry', 12], ['Tom', 18], ['Joe', 72], ['Trump', 80]]
    
    Process finished with exit code 0
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述


    4、使用 list.sort 函数对列表进行排序 - 设置 lambda 匿名排序函数


    list.sort 函数 的 key 参数 , 需要传入一个排序函数 , 该函数的规则如下 :

    • 指定的排序函数应该 接受一个参数 并 返回一个值 , 该返回值就是列表元素的比较值 ;
    • 返回的 比较值 应该是与 列表元素相关 , 一般是由列表元素 经过一系列计算得到 ;
    • 如果没有指定 key 比较函数 , 则默认按元素的值进行比较 ;

    该排序函数 , 可以指定为一个 lambda 表达式 , 也就是匿名函数 ;

    该 lambda 匿名排序函数 接收一个 element 参数 , 也就是 list 列表集合的 元素类型变量 , 返回 的是 比较值 ;


    lambda 函数可以写为 :

    lambda element: element[1]
    
    • 1

    完整的排序函数调用代码 :

    lst.sort(key=lambda element: element[1], reverse=True)
    
    • 1

    代码示例 :

    """
    sort 函数代码示例
    """
    
    # 要排序的列表容器
    lst = [["Tom", 18], ["Jerry", 12], ["Trump", 80], ["Joe", 72]]
    
    # 传入 lambda 表达式 / 匿名函数
    lst.sort(key=lambda element: element[1], reverse=True)
    print(lst)  # 输出:[['Trump', 80], ['Joe', 72], ['Tom', 18], ['Jerry', 12]]
    
    lst.sort(key=lambda element: element[1], reverse=False)
    print(lst)  # 输出:[['Jerry', 12], ['Tom', 18], ['Joe', 72], ['Trump', 80]]
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    执行结果 :

    D:\001_Develop\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/Hello.py
    [['Trump', 80], ['Joe', 72], ['Tom', 18], ['Jerry', 12]]
    [['Jerry', 12], ['Tom', 18], ['Joe', 72], ['Trump', 80]]
    
    Process finished with exit code 0
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

  • 相关阅读:
    蓝桥:重新排序(差分,python)
    上采样,下采样,卷积,反卷积,池化,反池化,双线性插值【基本概念分析】
    学习笔记-微信支付
    年薪20w+,做测试的第4年,从手工测试到自动化测试每一步都是艰难的~
    Maven添加SQLserver的依赖及驱动
    Canal 实现MySQL与Elasticsearch7数据同步
    守护线程?
    python提效小工具-统计xmind用例数量
    docker基础
    SpringCloud-Hystrix(熔断器)介绍及使用
  • 原文地址:https://blog.csdn.net/han1202012/article/details/131909346