Python中的sort函数:使用例子和小技巧
发布时间:2023-06-23 19:02:26
Python 中的 sort() 函数是将列表中元素按照一定的顺序进行排列的函数。其中,sort() 有两个参数,分别是 reverse 和 key。其中,reverse 参数是一个可选的布尔类型参数,默认为 False,用于指定是否降序排列;而 key 参数则是一个可选的排序函数,用来指定排序规则。
使用例子
1. 对列表进行升序排序:
list1 = [1, 3, 2, 5, 4] list1.sort() print(list1) # [1, 2, 3, 4, 5]
2. 对列表进行降序排序:
list1 = [1, 3, 2, 5, 4] list1.sort(reverse=True) print(list1) # [5, 4, 3, 2, 1]
3. 对字符串列表进行按长度升序排序:
list2 = ["apple", "banana", "cherry"] list2.sort(key=len) print(list2) # ['apple', 'cherry', 'banana']
4. 对字典列表进行按值升序排序:
list3 = [{"name": "Alice", "age": 22}, {"name": "Bob", "age": 20}, {"name": "Charlie", "age": 24}]
list3.sort(key=lambda x: x["age"])
print(list3) # [{'name': 'Bob', 'age': 20}, {'name': 'Alice', 'age': 22}, {'name': 'Charlie', 'age': 24}]
小技巧
1. 对于列表中的元素是字符串的情况,可以使用 sort() 函数的 key 参数进行排序。比如,按照字符串的长度进行升序排序:
list2 = ["apple", "banana", "cherry"] list2.sort(key=len) print(list2) # ['apple', 'cherry', 'banana']
2. 对于列表中的元素是数字的情况,可以使用 sort() 函数的 key 参数进行排序。比如,按照数字的绝对值进行排序:
list1 = [-1, 3, -2, 5, -4] list1.sort(key=abs) print(list1) # [1, -2, 3, -4, 5]
3. 对于列表中的元素是字典的情况,可以使用 sort() 函数的 key 参数进行排序。比如,按照字典中某个键的值进行排序:
list3 = [{"name": "Alice", "age": 22}, {"name": "Bob", "age": 20}, {"name": "Charlie", "age": 24}]
list3.sort(key=lambda x: x["age"])
print(list3) # [{'name': 'Bob', 'age': 20}, {'name': 'Alice', 'age': 22}, {'name': 'Charlie', 'age': 24}]
4. 对于列表中的元素是元组的情况,可以使用 sort() 函数的 key 参数进行排序。比如,按照元组的第二个元素进行排序:
list4 = [(1, 2), (3, 1), (5, 6), (4, 2)] list4.sort(key=lambda x: x[1]) print(list4) # [(3, 1), (4, 2), (1, 2), (5, 6)]
5. 对于需要排除掉某些元素的情况,可以使用 filter 函数对原始列表进行筛选。
比如,排除掉列表中的 0 元素,并按照升序排列:
list5 = [3, 1, 5, 0, 2, 0, 4] list5_filtered = list(filter(lambda x: x != 0, list5)) list5_filtered.sort() print(list5_filtered) # [1, 2, 3, 4, 5]
以上是使用 Python 中的 sort() 方法时需要注意的一些小技巧。对于 sort() 函数的更多参数以及用法,建议在实际应用中根据需求进行查阅。
