📅  最后修改于: 2023-12-03 14:46:27.833000             🧑  作者: Mango
对浮点值列表进行排序是编程中非常常见的操作之一。Python 提供了多种内置的排序方法,有助于简化此类任务。下面介绍几种方法。
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() 方法,也可以用来对浮点值列表进行排序。与 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 函数作为 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() 函数允许使用一个元组(或具有类似行为的对象)中的一项作为排序键。在本例中,将使用浮点值本身作为元组中的唯一项。
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() 函数。选择哪种方法取决于编程上下文和个人偏好。