python3 排序函数sorted 及 列表.sort()

本文介绍了Python3中对列表进行排序的方法,包括内置的`list.sort()`方法和`sorted()`函数。详细解析了它们的参数用法,如`key`和`reverse`,并提供了实例说明如何实现升序和降序排列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 列表排序 ------list.sort()

        1.1 格式:

                list.sort( key=None, reverse=False )     # 默认升序

         1.2 参数

                key -- 主要用来比较元素,只有一个参数,具体参数源自于可迭代对象中,指定可迭代对象中的一个元素来进行排序;

                reverse------排序规则, reverse=True降序; reverse=False升序

          1.3 无返回值,对列表中的对象进行排序

           1.4 实例:    

   例1 默认 升序
           aList = ['Google', 'Runoob', 'Taobao', 'Facebook']
           aList.sort()
           print ( " List : ", aList ) # ['Facebook', 'Google', 'Runoob', 'Taobao']
   例2 倒序输出 参数reverse=True
           aList = ['Google', 'Runoob', 'Taobao', 'Facebook']
           aList.sort(reverse=True)
           print("降序输出: ", aList)  # ['Taobao', 'Runoob', 'Google', 'Facebook']
   例3 对一个元素多个属性 指定某一个属性进行排序 用参数key=lamdba x:x[1]
           randomx = [(2, 2), (3, 4), (4, 1), (1, 3)]
           randomx.sort(key=lambda x:x[1])    # 指定第二个元素排序
           print("排序输出: ", randomx)     # 排序列表: [(4, 1), (2, 2), (1, 3), (3, 4)]

2 python3 sorted()函数

      2.1 sorted( iterable, key=None, reverse=False )     排序函数

      2.2 参数:

                     iterable   待排序对象

                      key 函数,函数只能有一个参数

                      reverse 排序的方式 True倒序,默认False升序

重点在key: key指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None 。

        2.3 栗子

                     

    3.1 基础序列排序
        result = (98, 85, 88, 45, 21, 68)
        print("升序: ",  list(sorted(result)))
        print("降序: ", list(sorted(result, reverse=True)))
       #  不同类型数据比较,需要将数据转换
        name = ['Alan', 5, 4, 'Bode', 9, 'woodman']
        print(list(sorted(name, key=lambda x: str(x))))      # 升序
        print(list(sorted(name, key=lambda x: str(x), reverse=True)))
    3.2 多多个参数结果进行排序----key
        students_result = [('woodman', 'A', 98), ('Kiln', 'D', 40), ('Bode', 'B', 75), ('dave', 'C', 61)]
        # 按照姓名排序
        name = sorted(students_result, key=lambda s: s[0])
        print('name排序:',list(name))
        # 按照级别排序
        level = sorted(students_result, key=lambda s: s[1])
        print('level排序:',list(level))
        # 按照成绩排序
        result = sorted(students_result, key=lambda s: s[1])
        print('result排序:',list(result))
     3.3 字符串排序, 排序规则: 小写 < 大写 < 奇数 < 偶数
        s = 'woodman1880ALan1623'
        # 函数,判断字符是否为数字,是否为偶数,是否大写,原字符串
        fun = lambda x: (x.isdigit(), x.isdigit() and int(x) % 2 == 0, x.isupper(), x)
        s1 = sorted(s, key=fun,reverse=False) # aadmnnoowAL11302688
        print("".join(s1))
     3.4 sorted()对字典数据排序
        d={'woodman':86,'Bode':78,'Alan':95}
        print('按照key升序:',sorted(d))
        print("按照val升序:", sorted(d.items(), key=lambda x:x[1]))
     
        

reference: 

                https://zhuanlan.zhihu.com/p/33402168

                https://www.cnblogs.com/fawaikuangtu123/p/9768130.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值