python BIF内置函数-- 排序sort、sorted(二)

本文介绍了Python中列表排序的方法,包括基本的sort和sorted函数用法,以及如何通过reverse参数实现升序或降序排列。此外,还详细讲解了如何利用key参数自定义排序规则,例如按字符串中的数字排序。
1、排序sort、sorted,,,,,reverse
    1、简单排序
list = [5, 23, 45, 23, 34, 1, 77, 89, 56, 34, 5, 3]
list.sort()                            
print(list)
print(sorted(list, reverse=True))
list.reverse()
print(list)

list.sort()功能是针对列表自己内部进行排序, 不会有返回值, 因此返回为None。reverse同理
解决办法:
    1)
        list.sort()
        return list

    2)
        return sorted(list)

        sort、sorted均接受 reverse=True or False 这个参数,表示排序的升降顺序


 2、对元素指定的某一部分进行排序,关键字排序

s = ['Chr1-10.txt','Chr1-1.txt','Chr1-2.txt','Chr1-14.txt','Chr1-3.txt','Chr1-20.txt','Chr1-5.txt']

我想要按照-后的数字的大小升序排序。要用到key

sorted(s, key=lambda d : int(d.split('-')[-1].split('.')[0]))

['Chr1-1.txt', 'Chr1-2.txt', 'Chr1-3.txt', 'Chr1-5.txt', 'Chr1-10.txt', 'Chr1-14.txt', 'Chr1-20.txt']

这就是key的功能,制定排序的关键字,通常都是一个lambda函数,当然你也可以事先定义好这个函数。如果不讲这个关键字转化为整型,结果是这样的:

sorted(s, key=lambda d : d.split('-')[-1].split('.')[0])

['Chr1-1.txt', 'Chr1-10.txt', 'Chr1-14.txt', 'Chr1-2.txt', 'Chr1-20.txt', 'Chr1-3.txt', 'Chr1-5.txt']

这相当于把这个关键字当做字符串了,很显然,在python中,'2' > '10'

你可以定制你想要的key, 如 key = lambda x : len(x) 按照序列的长度去排序。key= lambda x : (x[1], x[0]) 按二个元素,再第一个 等等。。。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值