列表sort方法

列表的sort方法可以对列表里的元素进行排序, 它有两个重要的参数,一个是key, 一个是reverse, key来设置一个函数用于返回用于比较大小的数值, reverse参数决定排序是从小到大还是从大到小, 下面是一个简单的sort方法使用示例。

lst = [2, 1, 4, 3]
lst.sort()
print(lst)  # [1, 2, 3, 4]

sort方法的定义如下

def sort(self, key=None, reverse=False):
    pass

参数key指定了排序所用的数值,reverse设置排序的方法,默认为False表示从小到大排序,对上面的列表从大到小排序可以这样写

lst = [2, 1, 4, 3]
lst.sort(reverse=True)
print(lst)      # [4, 3, 2, 1]

列表里的元素都是整数,因此用不上key这个参数,如果列表里的元素无法直接进行大小比较,就必须指定参数key,参数key必须是一个函数,返回列表里元素用于比较大小的值

lst = ['3', 5, '1', 2]
lst.sort(key=lambda x:str(x))
print(lst)   # ['1', 2, '3', 5]

列表中的元素有字符串(可以转换成int),也有整数,字符串与整数无法直接比较大小,在比较大小时,比较他们转成字符串之后的结果。除了使用lambda表达式,还可以使用自定义函数

lst = [(1, 2), (3, 2), (2, 4)]
def compare(x):
    return x[0]

lst.sort(key=compare)
print(lst)  # [(1, 2), (2, 4), (3, 2)]

列表里的数据是元组,元组之间无法直接比较大小,因此使用自定义函数compare指定使用元组的第一个元素代表元组进行大小比较来排序

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案