📜  Python|对浮点值列表进行排序的方法(1)

📅  最后修改于: 2023-12-03 14:46:27.833000             🧑  作者: Mango

Python | 对浮点值列表进行排序的方法

对浮点值列表进行排序是编程中非常常见的操作之一。Python 提供了多种内置的排序方法,有助于简化此类任务。下面介绍几种方法。

使用 sorted() 函数

sorted() 函数可以接受一个列表作为输入并返回一个已排序的列表,而原始列表不会被修改。如果要降序排序,则需在 sorted() 中传递参数 reverse=True

float_list = [2.8, 1.5, 4.7, 0.9, 3.4]
sorted_list = sorted(float_list)
reverse_sorted_list = sorted(float_list, reverse=True)

print(sorted_list)  # 输出 [0.9, 1.5, 2.8, 3.4, 4.7]
print(reverse_sorted_list)  # 输出 [4.7, 3.4, 2.8, 1.5, 0.9]
使用列表的 sort() 方法

列表对象有一个 sort() 方法,也可以用来对浮点值列表进行排序。与 sorted() 相似,sort() 也可以降序排序。

float_list = [2.8, 1.5, 4.7, 0.9, 3.4]
float_list.sort()
float_list.sort(reverse=True)

print(float_list)  # 输出 [0.9, 1.5, 2.8, 3.4, 4.7]
使用 lambda 函数

可以使用 lambda 函数作为 sorted() 函数的 key 参数。这里的 lambda 函数返回浮点数本身,因此 sorted() 函数将根据浮点数的值来排序。

float_list = [2.8, 1.5, 4.7, 0.9, 3.4]
sorted_list = sorted(float_list, key=lambda x: x)

print(sorted_list)  # 输出 [0.9, 1.5, 2.8, 3.4, 4.7]
使用 itemgetter() 函数

itemgetter() 函数允许使用一个元组(或具有类似行为的对象)中的一项作为排序键。在本例中,将使用浮点值本身作为元组中的唯一项。

from operator import itemgetter

float_list = [2.8, 1.5, 4.7, 0.9, 3.4]
sorted_list = sorted(enumerate(float_list), key=itemgetter(1))

print(sorted_list)  # 输出 [(3, 0.9), (1, 1.5), (0, 2.8), (4, 3.4), (2, 4.7)]

注:itemgetter() 函数返回的是一个可调用对象,因此在这里可以直接将其传递给 sorted() 函数的 key 参数。

总结

对浮点值列表排序是编程中常见的任务之一。Python 提供了多种方法来进行排序,包括 sorted() 函数、列表的 sort() 方法、lambda 函数和 itemgetter() 函数。选择哪种方法取决于编程上下文和个人偏好。