sort()函数:用途和参数详解
sort()函数是Python内置的一个排序函数,用于将一个列表(或可迭代对象)中的元素按照特定的方式排序。
sort()函数的用途:
1. 对列表进行升序或降序排序;
2. 对自定义对象进行排序。
sort()函数的语法:
list.sort(key=None, reverse=False)
参数解释:
1. key:用于排序的关键字,可以是函数或lambda表达式,用于定制排序规则;
2. reverse:排序规则,True为降序排列,False为升序排列。
示例:
lst = [3, 2, 4, 1]
lst.sort() # 默认按升序排序
print(lst) # 输出:[1, 2, 3, 4]
lst.sort(reverse=True) # 按降序排列
print(lst) # 输出:[4, 3, 2, 1]
lst = ["apple", "banana", "cherry", "orange"]
lst.sort(key=str.upper) # 将元素转为大写,按字母顺序排序
print(lst) # 输出:['apple', 'banana', 'cherry', 'orange']
lst = [("apple", 5), ("banana", 3), ("cherry", 7)]
lst.sort(key=lambda x: x[1]) # 按元组第二个元素升序排列
print(lst) # 输出:[('banana', 3), ('apple', 5), ('cherry', 7)]
自定义对象的排序:
如果需要对自定义对象进行排序,可以在类中定义__lt__()方法,指定对象的比较规则,然后调用sort()函数进行排序。
示例:
class Student:
def __init__(self, name, score):
self.name = name
self.score = score
def __lt__(self, other): # 比较规则:按成绩排序
return self.score < other.score
students = [Student("Alice", 90),
Student("Bob", 80),
Student("Chris", 70)]
students.sort() # 按成绩升序排列
for s in students:
print(s.name, s.score)
输出:
Chris 70
Bob 80
Alice 90
另外,sort()函数还有一个sorted()函数作为替代品,sorted()函数能够对任何可迭代的对象进行排序,与sort()函数不同,它返回一个新的排序列表。
示例:
lst = [3, 2, 4, 1]
new_lst = sorted(lst) # 返回排序后的新列表
print(new_lst) # 输出:[1, 2, 3, 4]
总结:
sort()函数是Python内置的一个排序函数,用于将一个列表中的元素排序。sort()函数有两个参数key和reverse,分别用于定制排序规则和指定排序规则。除此之外,sort()函数还能够对自定义对象进行排序。与sort()函数不同的是,sorted()函数能够对任何可迭代的对象进行排序,并且返回一个新的排序列表。
