sort()如何使用和常见用途?
sort() 是 Python 内置函数之一,可以用来对列表、元组等可迭代对象进行排序。在本文中,我们将探讨 sort() 的用法、参数和常见用途。
sort() 的用法
sort() 可以排序列表和元组。这个函数原地排序,也就是说,它不会创建新的排序后的对象,而是直接在原有对象上进行排序。
下面是 sort() 的用法:
list.sort(key=None, reverse=False) sorted_list = sorted(iterable, key=None, reverse=False)
其中:
- iterable:要排序的可迭代对象,如列表、元组、字符串、字典、集合等。
- key:排序的关键字,可以是函数或 Lambda 表达式。默认为 None,使用元素自身进行排序。
- reverse:是否要进行倒序排序,默认为 False。
sort() 示例
下面是一个 sort() 的简单示例:
# 对列表进行排序
list1 = [1, 3, 4, 2, 5]
list1.sort()
print(list1) # [1, 2, 3, 4, 5]
# 对元组进行排序
tuple1 = (4, 1, 3, 5, 2)
list2 = sorted(tuple1)
print(list2) # [1, 2, 3, 4, 5]
# 根据字典的值排序
dict1 = {'apple': 3, 'banana': 2, 'orange': 1}
list3 = sorted(dict1, key=lambda x: dict1[x])
print(list3) # ['orange', 'banana', 'apple']
sort() 常见用途
1. 对列表进行排序
sort() 可以用于对列表进行排序。例如,我们可以对一个数字列表进行排序:
list1 = [3, 5, 1, 4, 2] list1.sort() print(list1) # [1, 2, 3, 4, 5]
sort() 还可以按照一定的规则对列表进行排序:
list2 = [('apple', 3), ('banana', 2), ('orange', 1)]
list2.sort(key=lambda x: x[1]) # 根据元组的第二个元素排序
print(list2) # [('orange', 1), ('banana', 2), ('apple', 3)]
2. 按照多个条件进行排序
有些时候,我们需要按照多个条件进行排序。例如,我们需要按照考试成绩和姓名对学生进行排序,以便确定排名。这个时候,我们可以使用 sort(),并指定多个关键字:
students = [('Lily', 92), ('Tom', 85), ('Lucy', 90), ('Jack', 90)]
students.sort(key=lambda x: (-x[1], x[0])) # 根据成绩和姓名排序
print(students) # [('Lily', 92), ('Jack', 90), ('Lucy', 90), ('Tom', 85)]
在上面的例子中,我们首先按照成绩进行排序,然后再按照姓名进行排序。注意,由于成绩是数字,我们需要把成绩按照降序排序,而姓名是字符串,按照升序排序。
3. 对字典进行排序
字典是无序的,但是我们有时需要按照一定的规则对字典进行排序。例如,我们需要按照字典的值对字典进行排序:
dict1 = {'apple': 3, 'banana': 2, 'orange': 1}
list1 = sorted(dict1, key=lambda x: dict1[x])
print(list1) # ['orange', 'banana', 'apple']
在上面的例子中,我们使用了 sorted() 函数和 lambda 表达式,按照字典的值进行排序。
注意,使用 sorted() 函数后,返回的是一个列表,而不是字典。如果我们需要得到一个排序后的字典,可以使用 OrderedDict。
4. 按照字符串的长度排序
我们有时需要按照字符串的长度对字符串列表进行排序。例如,我们需要按照字符串长度从小到大对一组字符串进行排序:
strings = ['a', 'bb', 'ccc', 'dddd', 'eeeee'] strings.sort(key=lambda x: len(x)) print(strings) # ['a', 'bb', 'ccc', 'dddd', 'eeeee']
在上面的例子中,我们使用了 len() 函数和 lambda 表达式,按照字符串的长度排序。
5. 对列表进行反转排序
sort() 还可以用来对列表进行反转排序。如果要对列表进行反转排序,可以将 reverse 参数设置为 True:
list1 = [3, 5, 1, 4, 2] list1.sort(reverse=True) print(list1) # [5, 4, 3, 2, 1]
在上面的例子中,我们使用了 sort() 函数和 reverse 参数,对列表进行反转排序。
总结
sort() 是 Python 内置函数之一,可以用来对列表、元组等可迭代对象进行排序。它原地排序,可以按照一定的规则对对象进行排序。sort() 在 Python 编程中十分常见,掌握 sort() 的用法和常见用途,有助于提升代码的编写效率和代码质量。
