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

如何在Python中使用sorted()函数对列表进行排序并返回一个新的排好序的列表?

发布时间:2023-06-23 04:20:41

Python中的sorted()函数是一个非常常用的函数,它可以用来对列表进行排序。sorted()函数可以接受一个可迭代对象作为参数,例如列表、元组等,然后将其排序并返回一个新的排好序的列表。

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

sorted(iterable[, key][, reverse])

其中,iterable为需要排序的可迭代对象;key是一个函数,用于指定排序规则;reverse为一个布尔值,表示是否要降序排序,默认为False,即升序排序。

如果要对一个列表进行排序,只需要将这个列表作为sorted()函数的参数即可。例如,我们可以对一个由数字组成的列表进行升序排序,代码如下:

nums = [5, 2, 9, 1, 5]
sorted_nums = sorted(nums)
print(sorted_nums)   # 输出 [1, 2, 5, 5, 9]

可以看到,我们首先定义了一个由数字组成的列表nums,然后调用sorted()函数对其进行排序并返回一个新的列表sorted_nums。最后我们将排序后的结果打印出来,可以看到列表已经按照从小到大的顺序排好了序。

在使用sorted()函数时,还可以使用key参数来指定排序规则。例如,我们可以对一个由字符串组成的列表按照字符串的长度进行降序排序,代码如下:

words = ['apple', 'banana', 'cherry', 'date']
sorted_words = sorted(words, key=len, reverse=True)
print(sorted_words)   # 输出 ['banana', 'cherry', 'apple', 'date']

可以看到,我们首先定义了一个由字符串组成的列表words,然后在调用sorted()函数时指定了key=len,这表示按照字符串的长度进行排序。由于我们还想要降序排序,所以将reverse参数设置为True。最后我们输出了排序后的结果,可以看到列表已经按照字符串长度从长到短排好序了。

除了对列表进行排序外,sorted()函数还可以对元组、字典等可迭代对象进行排序。例如,我们可以对一个由元组组成的列表按照元组中的 个元素进行升序排序,代码如下:

tuples = [(2, 6), (1, 8), (3, 4), (2, 7)]
sorted_tuples = sorted(tuples, key=lambda x: x[0])
print(sorted_tuples)   # 输出 [(1, 8), (2, 6), (2, 7), (3, 4)]

可以看到,我们首先定义了一个由元组组成的列表tuples,然后在调用sorted()函数时通过key参数指定了排序规则。这里使用了lambda表达式来定义一个函数,函数的参数x表示列表中的每一个元组,函数返回值为这个元组的 个元素,即x[0]。由于我们要按照元组的 个元素进行排序,所以将返回值作为key参数传递给sorted()函数。最后我们输出了排序后的结果,可以看到列表已经按照元组的 个元素从小到大排好序了。

总之,sorted()函数是Python中一个非常常用的函数,它可以用来对可迭代对象进行排序,并返回一个新的排好序的列表。在使用sorted()函数时,我们可以通过key和reverse参数来指定排序规则,从而满足不同的排序需求。