Python sorted()函数: 排序数据轻松简单
在Python中,有一个非常方便的内置函数sorted()。它可以对各种类型的数据进行排序,包括数字、字符串、列表、元组、字典等。本文将介绍sorted()函数的用法和例子。
1.基本用法
sorted()函数可以接收一个可迭代对象(比如列表、元组等)作为参数,并返回一个已排序的新的列表。默认情况下,该函数按升序排序。下面是一些基本的例子:
1.1 对数字列表进行排序
nums = [5, 3, 8, 2, 9, 1] sorted_nums = sorted(nums) print(sorted_nums) # 输出 [1, 2, 3, 5, 8, 9]
1.2 对字符串列表进行排序
fruits = ['apple', 'banana', 'orange', 'grape', 'pear'] sorted_fruits = sorted(fruits) print(sorted_fruits) # 输出 ['apple', 'banana', 'grape', 'orange', 'pear']
2.高级用法
sorted()函数还可以接受一些可选的参数,以便更好地控制排序的过程。
2.1 reverse参数
reverse参数是一个布尔型变量,它确定是按升序还是按降序排序。
nums = [5, 3, 8, 2, 9, 1] sorted_nums_ascending = sorted(nums) print(sorted_nums_ascending) # 输出 [1, 2, 3, 5, 8, 9] sorted_nums_descending = sorted(nums, reverse=True) print(sorted_nums_descending) # 输出 [9, 8, 5, 3, 2, 1]
2.2 key参数
key参数是一个函数,用于指定排序的依据。如果没有指定key参数,则按默认顺序排序。
fruits = ['apple', 'banana', 'orange', 'grape', 'pear'] sorted_fruits_by_length = sorted(fruits, key=len) print(sorted_fruits_by_length) # 输出 ['pear', 'apple', 'grape', 'banana', 'orange']
在上面的例子中,key=len表示按照元素的长度(也就是字符串的长度)进行排序。
2.3 lambda函数
lambda函数类似于普通函数,但它是一个匿名函数,可以在需要时使用。lambda函数可以作为key参数传递给sorted()函数。
students = [('Tom', 89), ('Lucy', 92), ('Tim', 85), ('Kevin', 90)]
sorted_students_by_score = sorted(students, key=lambda x: x[1])
print(sorted_students_by_score) # 输出 [('Tim', 85), ('Tom', 89), ('Kevin', 90), ('Lucy', 92)]
在上面的例子中,我们使用了一个lambda函数来按照元素的第二个值(也就是学生的分数)进行排序。
3.注意事项
需要注意的是,使用sorted()函数对原列表进行排序时,原列表并不会被修改。sorted()函数返回的是一个新的排序后的列表。
nums = [5, 3, 8, 2, 9, 1] sorted_nums = sorted(nums) print(sorted_nums) # 输出 [1, 2, 3, 5, 8, 9] print(nums) # 输出 [5, 3, 8, 2, 9, 1]
此外,对于包含元素类型不同的列表进行排序时,可能会出现TypeError异常。这是因为Python不知道如何比较这些元素。为了避免这种情况,我们可以使用key参数来指定排序的依据。
4.总结
在本文中,我们已经介绍了sorted()函数的基本用法和高级用法。使用这个函数能够极大地简化数据排序的过程。需要注意的是,sorted()函数返回的是一个新的排序后的列表,原列表并没有发生改变。
