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

Python中的sorted()函数 - 如何使用sorted()对列表进行排序?

发布时间:2023-05-22 21:24:17

sorted()是Python内置函数之一,用于对可迭代对象进行排序。它会返回一个排序后的列表,而原始的可迭代对象则不会被修改。sorted()函数的用法非常简单,可以接受一个可迭代对象,并且可以指定一个key参数来自定义排序规则。本文将探讨sorted()函数的具体用法,以及如何使用它对列表进行排序。

使用sorted()对列表进行排序

使用sorted()函数对列表排序非常简单。下面的例子演示了如何使用sorted()对一个简单的整数列表进行升序排序:

nums = [5, 2, 9, 1, 5, 6]
sorted_nums = sorted(nums)
print(sorted_nums)

输出结果为:

[1, 2, 5, 5, 6, 9]

我们可以看到,sorted()函数按照升序排序了nums列表,并返回一个新的排序后的列表sorted_nums。需要注意的是,sorted()函数并没有修改原始的nums列表。

如果需要按照降序排序,只需要将reverse参数设置为True即可。下面的例子演示如何使用sorted()对列表进行降序排序:

nums = [5, 2, 9, 1, 5, 6]
sorted_nums = sorted(nums, reverse=True)
print(sorted_nums)

输出结果为:

[9, 6, 5, 5, 2, 1]

我们可以看到,sorted()函数按照降序排序了nums列表,并返回一个新的排序后的列表sorted_nums。

自定义排序规则

有时候,我们需要根据自定义的排序规则对列表进行排序。在这种情况下,可以使用key参数来指定一个自定义的比较函数。这个函数接受一个参数并返回一个可比较的值,sorted()函数会根据这个值进行排序。

下面的例子演示了如何使用sorted()和key参数按照字符串长度对列表进行排序:

words = ['apple', 'banana', 'pear', 'orange', 'kiwi']
sorted_words = sorted(words, key=lambda x: len(x))
print(sorted_words)

输出结果为:

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

我们可以看到,sorted()函数按照字符串长度对words列表进行排序,并返回一个新的排序后的列表sorted_words。

另外一个例子演示了如何按照列表中的第二个元素对元组列表进行排序:

items = [('book', 10), ('table', 5), ('chair', 15), ('pen', 3)]
sorted_items = sorted(items, key=lambda x: x[1])
print(sorted_items)

输出结果为:

[('pen', 3), ('table', 5), ('book', 10), ('chair', 15)]

我们可以看到,sorted()函数按照元组的第二个元素对items列表进行排序,并返回一个新的排序后的列表sorted_items。

结论

sorted()函数是Python内置函数之一,用于对可迭代对象进行排序。它可以接受一个可迭代对象,并可以指定一个key参数来自定义排序规则。使用sorted()函数对列表排序非常简单,只需要调用sorted()函数并传入需要排序的列表即可。sorted()函数会返回一个排序后的新列表,而原始的列表则不会被修改。