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

Python 中如何使用 sorted() 函数进行排序

发布时间:2023-09-23 16:39:54

在Python中,我们可以使用sorted()函数来对可迭代对象进行排序。sorted()函数接受一个可迭代对象作为参数,并返回一个新的已排序的列表,而不会改变原始对象。

sorted()函数的基本语法如下:

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

- iterable:表示需要排序的可迭代对象,比如列表、元组、字符串等;

- key:可选参数,用于指定排序规则,可以是一个函数或者lambda表达式。默认情况下,按照元素的自然顺序进行排序;

- reverse:可选参数,用于指定排序结果的顺序。默认值为False(升序),如果设置为True,则会按照降序排序。

下面是一些使用sorted()函数进行排序的示例:

1. 对一个列表进行升序排序:

numbers = [5, 2, 1, 4, 3]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # 输出: [1, 2, 3, 4, 5]

2. 对一个元组进行降序排序:

letters = ('b', 'c', 'a')
sorted_letters = sorted(letters, reverse=True)
print(sorted_letters)  # 输出: ['c', 'b', 'a']

3. 使用key参数指定排序规则:

fruits = ['apple', 'banana', 'cherry', 'date']
sorted_fruits = sorted(fruits, key=len)
print(sorted_fruits)  # 输出: ['date', 'apple', 'banana', 'cherry']

上面的例子使用了len函数作为排序规则,按照元素的长度进行排序。

4. 使用lambda表达式指定排序规则:

names = ['Jack', 'John', 'Jill', 'Jane']
sorted_names = sorted(names, key=lambda x: x[1])
print(sorted_names)  # 输出: ['Jane', 'Jack', 'John', 'Jill']

上面的例子使用了lambda表达式lambda x: x[1]作为排序规则,按照元素的第二个字符进行排序。

需要注意的是,sorted()函数返回的是一个新的已排序的列表,如果想原地修改原始对象,可以使用sort()方法,该方法会对原始对象进行排序,而不是返回新的列表。

numbers = [5, 2, 1, 4, 3]
numbers.sort()
print(numbers)  # 输出: [1, 2, 3, 4, 5]

这就是使用sorted()函数进行排序的基本用法。通过设置key参数,可以实现更加灵活的排序规则。同时,可以根据需要设置reverse参数来控制排序结果的顺序。在实际应用中,可以根据具体需求灵活运用sorted()函数,实现多种排序操作。