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

Python的sorted()函数是什么?如何使用?

发布时间:2023-06-21 10:22:55

Python的sorted()函数是一个内置函数,用于对各种可迭代的对象进行排序操作。排序操作一般通过指定比较函数或者键函数来实现,并且sorted()函数不会改变原始对象,而是返回一个新的排好序的对象。

排序的对象可以是字符串、列表、元组、字典、集合等,对于字符串类型,可以按照ASCII码的大小进行排序;对于列表和元组类型,则按照元素本身的大小排序;对于字典和集合类型,则会按照键值进行排序。

使用sorted()函数非常简单,其语法如下:

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

其中,iterable是待排序的可迭代对象,key函数是可选的,用于指定排序的方式,默认是按照对象的自然顺序进行排序, reverse参数也是可选的,默认值为False,当设置为True时,排序结果将会反转。

例如,对于一个简单的列表对象,我们可以使用sorted()函数进行升序排序,如下所示:

list = [1, 3, 2, 4, 5, 6]

sorted_list = sorted(list)

print(sorted_list)

输出结果为:[1, 2, 3, 4, 5, 6]

如果我们想按照元素的绝对值大小进行排序,则可以通过指定key参数来实现,如下所示:

list = [1, -3, 2, -4, 5, -6]

sorted_list = sorted(list, key=abs)

print(sorted_list)

输出结果为:[1, 2, -3, -4, 5, -6]

在这个例子中,我们使用了abs函数返回元素的绝对值作为排序的依据,因此输出结果就是按照绝对值从小到大排序的结果。

除了对于简单的列表对象进行排序外,sorted()函数可以对于更加复杂的对象进行排序,比如字典对象。对于字典对象,我们可以按照键值进行排序,如下所示:

d = {'a': 3, 'c': 1, 'b': 2, 'd': 4}

sorted_dict = sorted(d.items(), key=lambda x: x[0])

print(sorted_dict)

输出结果为:[('a', 3), ('b', 2), ('c', 1), ('d', 4)]

在这里,我们对于字典对象进行排序并返回一个元组列表,每个元组包括一个键值对。我们通过lambda函数为键值对中的键值项指定排序方式,这里是按照字典序进行排序的。

除了lambda函数外,我们还可以使用其他的函数作为key参数来指定元素的排序规则,比如我们可以自定义一个函数来指定排序规则:

def sort_by_length(element):

    return len(element)

words = ["apple", "banana", "cherry", "kiwi", "mango"]

sorted_words = sorted(words, key=sort_by_length)

print(sorted_words)

输出结果为:['kiwi', 'apple', 'mango', 'banana', 'cherry']

在这个例子中,我们定义了一个函数sort_by_length,用于返回字符串的长度作为排序依据。然后我们将这个函数作为key参数传入sorted()函数中,最终得到按照长度排序的结果。

总之,sorted()函数是Python内置的强大的排序函数,用于对各种可迭代对象进行排序操作,其灵活的应用方式可以帮助我们解决许多实际问题。