Python3 中sorted() 函数的用法
Python是一种非常强大和灵活的编程语言,它提供了许多有用的内置函数和方法。其中一个非常有用的函数是sorted()函数。sorted()函数可用于对序列进行排序。本文将详细介绍Python3中sorted()函数的用法。
1. sorted() 函数的基本用法
sorted()函数可以对列表、元组、集合、字典等可迭代对象进行排序。它的基本用法如下:
sorted(iterable, key=None, reverse=False)
参数说明:
iterable: 可迭代对象,表示要排序的序列。
key: 用于确定排序顺序的函数。默认为None,表示使用元素自身的值进行排序。
reverse: 排序顺序,True为降序,False为升序。默认为False。
下面是一些示例,演示了如何使用sorted()函数进行排序:
# 对列表进行升序排序
numbers = [5, 2, 9, 1, 3]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # 输出: [1, 2, 3, 5, 9]
# 对元组进行降序排序
letters = ('b', 'd', 'a', 'c')
sorted_letters = sorted(letters, reverse=True)
print(sorted_letters) # 输出: ['d', 'c', 'b', 'a']
在以上示例中,我们首先定义了一个列表numbers和一个元组letters,然后使用sorted()函数对它们进行排序。注意,在原始数据上并没有产生任何改变,而是返回一个新的排序后的列表或元组。
2. sorted() 函数的高级应用
除了基本用法之外,sorted()函数还提供了一些高级应用:
2.1 按特定的键进行排序
sorted()函数的key参数可以指定一个函数,用于确定排序的键。键可以是元素的属性、方法或任何可调用对象。
例如,我们可以使用lambda函数作为key来根据每个字符串的长度进行排序:
words = ['apple', 'banana', 'cherry', 'dragon fruit']
sorted_words = sorted(words, key=lambda x: len(x))
print(sorted_words) # 输出: ['apple', 'banana', 'cherry', 'dragon fruit']
在上面的示例中,我们使用lambda函数key=lambda x: len(x)来指定排序的键是每个字符串的长度。sorted()函数将按照字符串长度升序排序。
此外,我们可以使用内置函数operator.itemgetter()作为key来根据元组中的特定元素进行排序:
import operator
students = [('Tom', 18, 'A'), ('John', 16, 'C'), ('Lisa', 17, 'B')]
sorted_students = sorted(students, key=operator.itemgetter(2))
print(sorted_students) # 输出: [('Tom', 18, 'A'), ('Lisa', 17, 'B'), ('John', 16, 'C')]
在上面的示例中,我们使用operator.itemgetter(2)作为key来指定排序的键是每个学生元组中的第三个元素,即成绩。sorted()函数将按照成绩的字母顺序进行排序。