欢迎访问宙启技术站
智能推送

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() 函数的更多参数以及用法,建议在实际应用中根据需求进行查阅。