文章目录
1.自定义排序方法
列表、元组、字符串都可以进行排序,列表和元组进行排序时,如果有元素是字符串时,列表、元组中的所有元素都需要用引号引起来,例如:mytuple = ("jiangxl", "11")
,否则将会抛出错误,如下所示,调用sorted函数排序时,不明确要对字符串排序还是数字排序,从而就会抛出异常,如果都加上引号了,sorted函数就认为是对字符串进行排序。
在前面我们使用的都是sorted函数默认的排序规则,在调用sorted函数时,还可以指定参数key = 函数名 或者 key = 类名.方法名
指定某个函数或者是类中的方法,然后分别调用指定的函数或者方法对字符串中的所有字符、列表元组中的所有元素进行计算,然后根据函数或者方法的返回值进行排序,排序完成后再逆推出原始字符,从而实现自定义的排序规则。
如下图所示,这是字符串排序过程中,调用sorted函数时指定了
<key = str.lower
参数,str是字符串的类,lower是str类中的函数,在类中的函数就被称为方法,调用sorted函数时指定了参数key,就相当于自定义排序方法了,根据指定的函数或者方法对字符串中的所有字符、列表元组中的所有元素进行计算,将返回的结果再进行排序,最后再根据排序的返回值逆推出原始值。