如何使用Python中的sort()函数:对列表进行排序
发布时间:2023-06-26 23:45:23
在Python中,sort()函数是非常常用的函数之一,它可以用于对列表进行排序,包括对数字、字符串、元组、甚至自定义对象进行排序。sort()函数是一个内置函数,不需要额外导入任何模块。本文将详细介绍sort()函数的用法,包括如何对列表进行排序、如何实现降序排序、如何使用自定义排序规则以及如何对多维列表进行排序。
1. 对数字列表进行排序
最基本也是最简单的排序就是对数字列表进行排序,例如:
nums = [4, 2, 7, 1, 3, 6, 5] nums.sort() print(nums)
这段代码会输出:
[1, 2, 3, 4, 5, 6, 7]
sort()函数默认是升序排序,如果要降序排序,可以添加一个reverse参数:
nums = [4, 2, 7, 1, 3, 6, 5] nums.sort(reverse=True) print(nums)
这样就会输出:
[7, 6, 5, 4, 3, 2, 1]
2. 对字符串列表进行排序
除了对数字进行排序,sort()函数也可以对字符串进行排序。例如:
fruits = ['apple', 'banana', 'orange', 'pear', 'grape'] fruits.sort() print(fruits)
这样就会输出:
['apple', 'banana', 'grape', 'orange', 'pear']
sort()函数默认是按照ASCII码顺序进行排序,如果想忽略大小写,可以在排序前先将所有字符串转换成小写或大写字母:
fruits = ['apple', 'banana', 'orange', 'pear', 'Grape'] fruits = [f.lower() for f in fruits] fruits.sort() print(fruits)
这样就会输出:
['apple', 'banana', 'grape', 'orange', 'pear']
3. 对元组列表进行排序
sort()函数也可以对元组列表进行排序,例如:
students = [('Tom', 18), ('Jerry', 20), ('Mary', 19)]
students.sort()
print(students)
这样就会输出:
[('Jerry', 20), ('Mary', 19), ('Tom', 18)]
元组列表默认是按照第一个元素进行升序排序,如果想按照第二个元素进行排序,可以使用lambda表达式来指定排序规则:
students = [('Tom', 18), ('Jerry', 20), ('Mary', 19)]
students.sort(key=lambda s: s[1])
print(students)
这样就会输出:
[('Tom', 18), ('Mary', 19), ('Jerry', 20)]
4. 对自定义对象列表进行排序
如果要对自定义对象列表进行排序,需要定义一个__lt__()方法,表示小于号的比较规则,例如:
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
def __lt__(self, other):
return self.age < other.age
students = [Student('Tom', 18), Student('Jerry', 20), Student('Mary', 19)]
students.sort()
for s in students:
print(s.name, s.age)
这样就会输出:
Tom 18 Mary 19 Jerry 20
5. 对多维列表进行排序
如果要对多维列表进行排序,可以使用lambda表达式指定排序规则,例如:
data = [[1, 3, 5], [2, 4, 6], [0, 8, 7]]
data.sort(key=lambda x: x[1])
for d in data:
print(d)
这样就会输出:
[1, 3, 5] [2, 4, 6] [0, 8, 7]
以上就是sort()函数的使用方法,可以通过sort()函数轻松地对列表进行排序,不论是数字、字符串、元组还是自定义对象或多维列表,都可以通过sort()函数来实现。
