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

Python中的sorted()函数介绍及用法。

发布时间:2023-06-12 13:45:14

Python是一个功能强大的编程语言,其中有许多内置的函数和工具可以帮助程序员快速、高效地编写代码。其中一个非常有用的函数是sorted()函数。sorted()函数可以将可迭代对象(如列表、元组、集合等)中的数据进行排序,并返回一个新的排序后的列表。

函数语法

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

参数说明:

- iterable:要排序的可迭代对象。

- key:是用来进行比较的元素,可以是一个函数,表示按照该函数返回值进行排序。

- reverse:为True表示降序排列,为False表示升序排列。默认为False。

示例1:升序排序

假设我们有一个列表,其中包含一些数字,我们想对它们进行升序排序:

numbers = [21, 232, -40, 59, 82, 10]
sorted_numbers = sorted(numbers)
print(sorted_numbers)

运行结果为:

[-40, 10, 21, 59, 82, 232]

排序后的列表中,最小的数是-40,最大的数是232。

示例2:降序排序

我们可以使用sorted()函数的reverse参数来实现降序排序。例如:

numbers = [21, 232, -40, 59, 82, 10]
sorted_numbers = sorted(numbers, reverse=True)
print(sorted_numbers)

运行结果为:

[232, 82, 59, 21, 10, -40]

排序后的列表中,最大的数是232,最小的数是-40。

示例3:按照绝对值排序

我们可以使用sorted()函数的key参数来按照元素的绝对值进行排序。例如:

numbers = [21, 232, -40, 59, 82, 10]
sorted_numbers = sorted(numbers, key=abs)
print(sorted_numbers)

运行结果为:

[10, 21, -40, 59, 82, 232]

在这个排序中,我们用到了abs()函数来获取元素的绝对值,然后将结果传递给了sorted()函数的key参数。

示例4:按照长度排序

我们也可以使用sorted()函数来对字符串进行排序。例如,我们可以按照字符串长度排序,如下所示:

words = ["apple", "banana", "pear", "orange"]
sorted_words = sorted(words, key=len)
print(sorted_words)

运行结果为:

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

注意,我们将len()函数作为key参数传递给了sorted()函数。这告诉sorted()函数按照字符串的长度进行排序。

示例5:按照多个键进行排序

我们还可以使用sorted()函数对多个键进行排序。例如,我们可以按照文本文件中的行数和字母顺序对文件进行排序,如下所示:

with open("file.txt") as f:
    lines = f.readlines()
    
sorted_lines = sorted(lines, key=lambda x: (len(x), x))
print(sorted_lines)

在这个例子中,我们打开了一个文本文件,并将其内容读入到一个列表中。然后,我们使用lambda函数将行数和文本行本身作为元组传递给了sorted()函数的key参数。这告诉sorted()函数先按照行数排序,然后按照字母顺序排序。

总结

- sorted()函数是Python中用于对可迭代对象进行排序的函数。

- sorted()函数的默认排序方式是升序排序,可以使用reverse参数实现降序排序。

- sorted()函数的key参数可以用来设置排序键,比如按照元素的绝对值、字符串长度等排序。

- sorted()函数也可以用来对多个键进行排序。