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

Python中的sorted()函数:列表排序

发布时间:2023-06-14 09:10:07

Python中的sorted()函数是一个非常实用和强大的函数,可以对列表(list)进行排序,也可以对其他可迭代对象进行排序,如字符串(string)和元组(tuple)等。本文将重点介绍sorted()函数在列表排序中的应用。

1. sorted()函数的语法

sorted()函数的语法如下:

sorted(iterable, key=None, reverse=False)

其中,iterable是要排序的列表或其他可迭代对象;key是一个函数,用来指定排序时比较的关键字;reverse是一个布尔值,用来指定是否要倒序排列。如果reverse=True,则按照倒序排列,默认为False。

2. sorted()函数的用法

sorted()函数可以用于对各种类型的列表排序。下面是几个示例:

2.1 对数字列表排序

numbers = [5, 3, 8, 1, 7]
sorted_numbers = sorted(numbers)
print(sorted_numbers)

输出结果:

[1, 3, 5, 7, 8]

2.2 对字符串列表排序

fruits = ['banana', 'apple', 'orange', 'pear']
sorted_fruits = sorted(fruits)
print(sorted_fruits)

输出结果:

['apple', 'banana', 'orange', 'pear']

2.3 对元组列表排序

students = [('Tom', 25), ('Jerry', 22), ('Mike', 28), ('Lisa', 24)]
sorted_students = sorted(students, key=lambda x:x[1])
print(sorted_students)

输出结果:

[('Jerry', 22), ('Lisa', 24), ('Tom', 25), ('Mike', 28)]

这个例子按照学生的年龄从小到大排序,使用了lambda函数来指定排序时的关键字。

3. sorted()函数与sort()方法的区别

在Python中,列表有一个sort()方法,也可以用来排序。与sorted()函数不同的是,sort()方法是在原来的列表上进行排序,而sorted()函数是创建一个新的排序后的列表,原来的列表不变。例如:

numbers = [5, 3, 8, 1, 7]
numbers.sort()
print(numbers)

输出结果:

[1, 3, 5, 7, 8]

numbers = [5, 3, 8, 1, 7]
sorted_numbers = sorted(numbers)
print(sorted_numbers)
print(numbers)

输出结果:

[1, 3, 5, 7, 8]
[5, 3, 8, 1, 7]

4. 总结

sorted()函数是一个非常实用和强大的函数,可以用来对各种类型的列表进行排序。它还支持指定排序时的关键字和是否倒序排列。与sort()方法不同,sorted()函数是不会改变原有列表的,而是生成一个新的排序后的列表。在实际使用中,根据具体的需求选择sort()方法还是sorted()函数。