Python列表(list)排序

Python列表(list)排序教程

Python列表 排序我们还可以使用 key 参数,指定系统内置的 函数,做为排序的依据,同时,还可以使用自定义函数,按照自定义规则进行排序。

案例

忽略大小写排序列表

使用 sort 函数,忽略大小写排序列表

print("嗨客网(www.haicoder.net)") # 使用 sort 函数,忽略大小写排序列表 lis = ["Hello", "HaiCoder", "haicoder", "hello"] lis.sort(key=str.lower) print("sortedList =", lis)

程序运行后,控制台输出如下:

39 python列表排序.png

我们在排序列表时,指定了 key 为 str.lower 函数,即对参与排序的每个元素都使用 str.lower 函数进行转换,转换后,再进行排序。

最后,我们通过输出的排序后的列表可以看出,所有相同的 字符串 元素都被排序到了一起,而不管大小写。

按字符串长度排序列表

使用 sort 函数,按字符串长度排序列表

print("嗨客网(www.haicoder.net)") # 使用 sort 函数,按字符串长度排序列表 lis = ["Hello", "HaiCoder", "Hai", "Code"] lis.sort(key=len) print("sortedList =", lis)

程序运行后,控制台输出如下:

40 python列表排序.png

我们在排序列表时,指定了 key 为 len 函数,即对参与排序的每个元素都使用 len 函数进行计算长度,然后再按照长度进行排序。

最后,我们通过输出的排序后的列表可以看出,所有的元素都是按照了长度进行了排序。

按字符串长度倒叙排序列表

使用 sort 函数,按字符串长度倒叙排序列表

print("嗨客网(www.haicoder.net)") # 使用 sort 函数,按字符串长度倒叙排序列表 lis = ["Hello", "HaiCoder", "Hai", "Code"] lis.sort(key=len, reverse=True) print("sortedList =", lis)

程序运行后,控制台输出如下:

41 python列表排序.png

我们在排序列表时,指定了 key 为 len 函数同时指定了 reverse 参数为 True,即对参与排序的每个元素都使用 len 函数进行计算长度,然后再按照长度进行倒叙排序。

使用自定义函数排序列表

使用 sort 函数,用自定义函数排序列表

print("嗨客网(www.haicoder.net)") def sort_str(str1): return str1[1] # 使用 sort 函数,用自定义函数排序列表 lis = ["Code", "Ai", "Hello", "HaiCoder"] lis.sort(key=sort_str) print("sortedList =", lis)

程序运行后,控制台输出如下:

42 python列表排序.png

首先,我们自定义了一个函数 sort_str,该函数接受一个字符串类型的 变量,在该函数里面我们指定排序规则为按照字符串的第二个字符进行排序。

我们在排序列表时,指定了 key 为我们自定义的 sort_str 函数,最后打印结果,我们发现,整个 list 中所有的元素都是按照了字符串的第二个字符进行了排序。

Python列表(list)排序总结

Python 的列表排序我们还可以使用 key 参数,指定系统内置的函数,做为排序的依据,同时,还可以使用自定义函数,按照自定义规则进行排序。忽略大小写排序列表语法:

lis.sort(key=str.lower)

按字符串长度排序列表语法:

lis.sort(key=len)

按字符串长度倒叙排序列表语法:

lis.sort(key=len, reverse=True)

使用自定义函数排序列表语法:

lis.sort(key=sort_str)