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

如何使用Python中的列表排序函数

发布时间:2023-06-26 14:09:35

Python中列表排序是一个非常常见的操作,因为排序能让我们更快速有效地处理和分析数据。Python提供了许多不同的列表排序函数和方法,本文将会详细介绍如何使用这些函数进行列表排序,并提供常见的用法场景。

一、Python中的列表排序函数

1. sort()函数

sort()函数用于对列表进行永久性排序,即修改原列表。sort()默认是按升序的方式排序,但也可以通过参数reverse=True来实现降序排序。

语法:list.sort(reverse=True)#reverse参数默认为False,为True时为降序排序

示例代码:

list1 = [3, 1, 4, 1, 5, 9, 2, 6, 5]
list1.sort()
print(list1)  #[1, 1, 2, 3, 4, 5, 5, 6, 9]

list2 = [3, 1, 4, 1, 5, 9, 2, 6, 5]
list2.sort(reverse=True)
print(list2)  #[9, 6, 5, 5, 4, 3, 2, 1, 1]

2. sorted()函数

sorted()函数和sort()函数一样,也是对列表进行排序,但是,sorted()对原列表没有修改,而是返回一个新的排序好的列表。和sort()一样,sorted()函数也有reverse参数来实现降序排序。

语法:sorted(list, reverse=True)#reverse参数默认为False,为True时为降序排序

示例代码:

list1 = [3, 1, 4, 1, 5, 9, 2, 6, 5]
newList1 = sorted(list1)
print(newList1)  #[1, 1, 2, 3, 4, 5, 5, 6, 9]
print(list1)  #[3, 1, 4, 1, 5, 9, 2, 6, 5]

list2 = [3, 1, 4, 1, 5, 9, 2, 6, 5]
newList2 = sorted(list2, reverse=True)
print(newList2)  #[9, 6, 5, 5, 4, 3, 2, 1, 1]

二、常见的使用场景

1. 数字列表的排序

最直接的应用就是对数字列表进行排序,如何实现按照数字大小升序或降序排列。

list1 = [3, 1, 4, 1, 5, 9, 2, 6, 5]
list1.sort()  #[1, 1, 2, 3, 4, 5, 5, 6, 9]

list2 = [3, 1, 4, 1, 5, 9, 2, 6, 5]
list2.sort(reverse=True)  #[9, 6, 5, 5, 4, 3, 2, 1, 1]

2. 对字符串列表进行排序

对于字符串列表的排序,sort()函数和sorted()函数都可以实现。默认按照字母表顺序排序。

list1 = ['tom', 'cat', 'cat', 'dog', 'apple']
list1.sort()  #['apple', 'cat', 'cat', 'dog', 'tom']

list2 = ['tom', 'cat', 'cat', 'dog', 'apple']
newList2 = sorted(list2)  #['apple', 'cat', 'cat', 'dog', 'tom']

3. 对字典列表进行排序

对于字典列表的排序,可以使用sort()和sorted()函数的关键字参数key和reverse来实现。key指定用于排序的关键字,reverse指定是否进行降序排序。

示例代码:

list1 = [{'name': 'Tom', 'age': 20}, {'name': 'Bob', 'age': 25}, {'name': 'Jack', 'age': 22}]
#按照年龄升序排序
list1.sort(key=lambda x: x['age'])  # [{'name': 'Tom', 'age': 20}, {'name': 'Jack', 'age': 22}, {'name': 'Bob', 'age': 25}]

#按照年龄降序排序
newList1 = sorted(list1, key=lambda x: x['age'], reverse=True)  
#[{'name': 'Bob', 'age': 25}, {'name': 'Jack', 'age': 22}, {'name': 'Tom', 'age': 20}]

4. 对复杂列表进行排序

对于复杂列表,可以通过sort()函数和sorted()函数的嵌套应用来实现,示例代码如下:

list1 = [[3, 1, 4], [1, 5, 9], [2, 6, 5]]
#按照子列表第一元素升序排序
list1.sort(key=lambda x: x[0])  #[[1, 5, 9], [2, 6, 5], [3, 1, 4]]

#按照子列表第三元素降序排序
newList1 = sorted(list1, key=lambda x: x[2], reverse=True)  
#[[1, 5, 9], [2, 6, 5], [3, 1, 4]]

总结:

本文详细介绍了如何使用Python中的列表排序函数,主要包括了sort()和sorted()函数的基本用法和各种常见用法场景。理解和熟练掌握这些方法和应用场景,能够帮助我们高效地处理数据,提高编程效率。