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

Python sorted()函数用法及示例

发布时间:2023-06-10 04:25:25

Python的sorted()函数是一个内置函数,可以按照指定的排序规则对可迭代对象进行排序,并返回一个新的排序后的列表或可迭代对象。本文将介绍sorted()函数的详细用法及示例。

1. sorted()函数的基本用法

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

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

其中,sorted()函数的参数包括:

- iterable: 需要排序的可迭代对象,如列表、元组、集合、字典等。

- key: 指定一个函数,用于从每个可迭代对象中提取一个用于比较的关键字,然后按照关键字进行排序。如果没有指定key函数,则默认按照元素本身的值进行排序。

- reverse: 是否倒序排列,默认为False,即升序排列。

sorted()函数会返回一个新的列表或可迭代对象,其中包含有序的元素。可以使用list()函数将返回的结果转换为列表。

下面是一个简单的示例:

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]

在上面的示例中,我们创建了一个包含多个整数的列表lst,然后使用sorted()函数将其排序,并将结果存储在sorted_lst中。输出结果表明,sorted_lst是一个按照升序排列的列表。

2. sorted()函数中使用关键字参数key

sorted()函数的key参数可以传递一个函数,该函数将用于从每个元素中提取一个值,该值将用于比较和排序。

下面是一个使用key参数的示例:

lst = ['hello', 'world', 'abc', 'de', 'python']

sorted_lst = sorted(lst, key=len)

print(sorted_lst)  # 输出 ['de', 'abc', 'python', 'hello', 'world']

在上面的示例中,我们通过key参数指定了len函数,表示按照每个元素的长度进行排序。输出结果表明,sorted_lst是一个按照元素长度升序排列的列表。

除了len函数,我们还可以使用其他函数,例如str.lower()对元素进行排序。例如:

lst = ['hello', 'World', 'abc', 'DE', 'python']

sorted_lst = sorted(lst, key=str.lower)

print(sorted_lst)  # 输出 ['abc', 'DE', 'hello', 'python', 'World']

在上面的示例中,我们通过key参数指定了str.lower函数,表示按照元素的小写形式进行排序。输出结果表明,sorted_lst是一个按照小写形式升序排列的列表。

3. sorted()函数中使用关键字参数reverse

sorted()函数的reverse参数可以指定是否倒序排列。默认情况下,reverse参数为False,表示升序排列。如果将reverse参数设置为True,则表示降序排列。

下面是一个使用reverse参数的示例:

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

reverse_sort = sorted(lst, reverse=True)

print(reverse_sort)  # 输出 [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

在上面的示例中,我们将reverse参数设置为True,表示按照降序排列。输出结果表明,reverse_sort是一个按照降序排列的列表。

4. sorted()函数中使用自定义函数进行排序

除了使用Python内置函数作为key参数外,我们还可以使用自定义函数进行排序。自定义函数需要接受一个元素作为参数,并返回一个值,然后sorted()函数将按照这个值进行排序。

下面是一个使用自定义函数的示例:

lst = [('Jack', 28), ('Tom', 34), ('Alice', 23), ('Bob', 29)]

def get_age(person):

    return person[1]

sorted_lst = sorted(lst, key=get_age)

print(sorted_lst)  # 输出 [('Alice', 23), ('Jack', 28), ('Bob', 29), ('Tom', 34)]

在上面的示例中,我们定义了一个自定义函数get_age,它接受一个元素(person),返回person的年龄(person[1])。然后我们使用sorted()函数,通过get_age函数从每个元素中提取年龄,并按照年龄进行排序。输出结果表明,sorted_lst是一个按照年龄升序排列的列表。

5. sorted()函数中应用于字典的示例

在Python中,字典是一种非常常见的数据类型。我们可以通过sorted()函数对字典进行排序,并返回一个按照字典键值排序的列表。

下面是一个使用sorted()函数对字典进行排序的示例:

dct = {'apple': 50, 'banana': 100, 'cherry': 25, 'orange': 35}

sorted_dct = sorted(dct.items(), key=lambda x: x[1], reverse=True)

print(sorted_dct)  # 输出 [('banana', 100), ('apple', 50), ('orange', 35), ('cherry', 25)]

在上面的示例中,我们使用了sorted()函数及其参数,对字典dct进行排序,并返回一个列表。lambda函数用于从字典项中提取值并进行比较。输出结果表明,sorted_dct是一个按照字典值降序排列的列表。

6. sorted()函数中使用sorted()方法的示例

在上面的示例中,我们使用了sorted()函数对可迭代对象进行排序。实际上,Python中还有一个sorted()方法,它可以用于列表、元组和集合的排序。sorted()方法与sorted()函数的使用方法基本相同。

下面是使用sorted()方法进行排序的示例:

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

lst.sort()

print(lst)  # 输出 [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

在上面的示例中,我们使用sort()方法对列表lst进行排序。输出结果表明,lst是按照升序排列的。

需要注意的是,sorted()方法与sort()方法的区别在于,sort()方法将直接排序原始列表,而sorted()函数会返回一个新列表,不会改变原始列表。

结尾

本文为大家介绍了Python中排序函数sorted()的使用方法及示例。sorted()函数具有非常灵活的使用方式,可以通过参数key和reverse对其进行自定义排序。同时,sorted()函数还支持对字典进行排序。希望本文的内容能够帮助读者更加深入地了解Python中的排序功能。