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

Python中的sorted函数的用法及示例

发布时间:2023-06-06 01:18:36

sorted()函数是Python内置函数之一,用于对列表、元组、字典等可迭代对象进行排序,从而返回排好序的新对象。该函数的使用非常灵活,可以自定义排序规则或者按照默认规则进行排序。

sorted()函数的用法

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

其中,iterable表示要排序的可迭代对象,可以是列表、元组、集合或者字典等。key是一个函数,用于设定排序规则,reverse表示是否按照降序排列。如果reverse=True,则排列顺序为倒序。

默认情况下,sorted()函数按照对象中元素的大小或者 个元素的字典序进行排序。对于其他类型的可迭代对象,比如字典,则只能按照键或者值进行排序。

示例1:对列表进行排序

下面给出一个简单的示例,展示了如何使用sorted()函数对列表进行排序。

lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]

# 默认排序

sorted_lst = sorted(lst)

print(sorted_lst) # [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

# 倒序排列

reversed_lst = sorted(lst, reverse=True)

print(reversed_lst) # [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

在上面的示例中,我们定义了一个lst列表,并使用sorted()函数对其进行排序。默认情况下,sorted()函数会按照元素大小排序,默认为升序,因此我们得到了一个从小到大的有序列表。接下来,我们使用reverse=True将列表倒序排列,得到了一个从大到小的有序列表。

示例2:使用函数作为排序依据

上面的示例中,我们使用默认排序方式进行排序。但是,在实际应用中,有时我们需要通过某种方式(比如自定义函数)进行排序。下面是一个简单示例:

lst = ['a', 'abcd', 'abc', 'def', 'a', 'aa']

# 按照字符串长度进行排序

sorted_lst = sorted(lst, key=lambda x:len(x))

print(sorted_lst) # ['a', 'a', 'aa', 'abc', 'def', 'abcd']

在这个示例中,我们定义了一个字符串列表lst,并使用lambda函数定义了排序规则。在这个函数中,我们通过len()函数计算字符串长度,把字符串长度作为排序依据。由于sorted()函数按照从小到大顺序排序,因此我们得到了按照字符串长度升序排列的有序列表。

示例3:字典排序

字典是一种非常常用的Python数据结构,由于其键值对的特性,所以可以用于描述大多数数据结构。但是,字典本身是无序的,因此,在需要排序的时候,我们需要先将字典转化为列表或者元组,然后对列表或者元组进行排序。下面是一个示例:

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

# 按照键进行排序

sorted_items = sorted(dct.items())

print(sorted_items) # [('a', 3), ('b', 1), ('c', 2)]

# 按照值进行排序

sorted_values = sorted(dct.items(), key=lambda x:x[1])

print(sorted_values) # [('b', 1), ('c', 2), ('a', 3)]

在这个示例中,我们定义了一个字典dct,并使用items()方法将其转化为一个由键值对构成的元组列表。接下来,我们使用sorted()函数,按照键或者值进行排序。需要注意的是,我们需要使用lambda函数来指定键或者值的排序规则。在排序结果中,每个元素仍然是一个元组,元组左边的是键,元组右边的是值。

结论

本文介绍了Python内置函数之一sorted()函数的使用方法及示例。sorted()函数可以对Python中各种可迭代对象进行排序,包括列表、元组、集合和字典等。同时,sorted()函数还可以自定义排序规则,从而满足各种不同的排序需求。在实际应用中,合理使用sorted()函数可以提高代码的可读性和执行效率。