一文弄懂Python中的sort和sorted函数 您所在的位置:网站首页 python列表排序函数 一文弄懂Python中的sort和sorted函数

一文弄懂Python中的sort和sorted函数

2023-04-10 20:59| 来源: 网络整理| 查看: 265

1. 引言

Python中的 sort()和sorted()函数主要用于按升序或降序对数据进行排序。在本文中比较用于列表时,两个函数在编程和语法上的差异。

闲话少说,我们直接开始吧!

2. Sort()函数基本用法

用于列表排序的sort函数的语法如下:

list.sort(reverse=False, key=None)

用法如下:

参数reverse:默认为False。如果reverse=True,则数据将按降序排列。参数key: 默认为None。我们可以指定一个用户定义的函数来自定义排序。2.1 样例一之基本排序

我们首先尝试使用上述默认参数来看个事例,样例代码如下:

# Original List typ_data = ['$', '45', '3j+5', 'Hello'] print(f'Original Data: {typ_data}') # Sorting the list typ_data.sort() # Printing sorted list print(f'Sorted Data: {typ_data}') ---------- Original Data: ['$', '45', '3j+5', 'Hello'] Sorted Data: ['$', '3j+5', '45', 'Hello']

可以知道上述结果按照字符串首字符的ASCII码进行升序排序。

2.2 样例二之用户自定义排序函数

有时间我们需要按照用户自定义的函数来对列表进行排序,相应的代码示例如下:

# List containing dictionary data data = [ {'fruit': 'strawberry', 'price': 100}, {'fruit': 'banana', 'price': 91}, {'fruit': 'mango', 'price': 132}, {'fruit': 'cherry', 'price': 82}, ] print(f'Original Data: {data}') # Function for sorting by key 'price' def sort_dict_by_price(item): return item['price'] # Sorting data using the user-defined sorting function data.sort(key=sort_dict_by_price) print('-'*20) # Printing the data print(f'Sorted Data: {data}')

运行结果如下:

Original Data: [{'fruit': 'strawberry', 'price': 100}, {'fruit': 'banana', 'price': 91}, {'fruit': 'mango', 'price': 132}, {'fruit': 'cherry', 'price': 82}] -------------------- Sorted Data: [{'fruit': 'cherry', 'price': 82}, {'fruit': 'banana', 'price': 91}, {'fruit': 'strawberry', 'price': 100}, {'fruit': 'mango', 'price': 132}]

上述代码中,我们通过编写一个名为sort_dict_by_price的函数,它接受我们的字典本身作为输入,并返回键“price”的值。将此函数已传递给函数sort的参数key,该参数将根据价格按升序对数据进行排序。

3. Sorted()函数基本用法

用于列表排序的sorted函数的语法如下:

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

用法如下:

参数iterable: 必需。输入任何可迭代数据参数key: 默认为“None”。指定排序条件。参数reverse: 默认为False。当设置为True时,数据将按降序排列。3.1 样例一之基本排序

Python中的sorted()函数用于对可迭代数据进行排序。默认情况下,此函数按升序对数据进行排序。

我们当然也可以使用sorted函数来对各种类型的数据进行排序,样例代码如下:

list_data = [43, 21, 2, 34] print(f'Sorted List: {sorted(list_data)}') # Seperator print('-'*20) tuple_data = (('x', 3), ('w', 1), ('1', 4)) print(f'Sorted Tuple: {sorted(tuple_data)}') # Seperator print('-'*20) dict_data = {9: 'G', 1: 'V', 4: 'E'} print(f'Sorted Dictionary Keys: {sorted(dict_data)}') print(f'Sorted Dictionary Values: {sorted(dict_data.values())}') print(f'Sorted Dictionary Items: {sorted(dict_data.items())}')

结果如下:

Sorted List: [2, 21, 34, 43] -------------------- Sorted Tuple: [('1', 4), ('w', 1), ('x', 3)] -------------------- Sorted Dictionary Keys: [1, 4, 9] Sorted Dictionary Values: ['E', 'G', 'V'] Sorted Dictionary Items: [(1, 'V'), (4, 'E'), (9, 'G')]3.2 样例二之用户自定义排序函数

我们同样也可以通过将自定义排序函数传递给函数sorted()来实现相应的排序功能,举例如下:

# Tuple data tuple_data = ( ('Mango', 25), ('Walnut', 65), ('Cherry', 10), ('Apple', 68), ) print(f'Original: {tuple_data}') # Separator print('-'*20) # Function for grabbing 2nd item from the data def sorting_tup_data(item): return item[1] # Sorting based on sorting criteria in descending order sorting = sorted(tuple_data, key=sorting_tup_data, reverse=True) print(f'Sorted: {sorting}')

结果如下:

Original: (('Mango', 25), ('Walnut', 65), ('Cherry', 10), ('Apple', 68)) -------------------- Sorted: [('Apple', 68), ('Walnut', 65), ('Mango', 25), ('Cherry', 10)]

上述代码中,由于在传递自定义函数时使用了参数key,因此元组是根据第二项进行排序的;同样由于我们将参数reverse设置为True,此时输出的数据是按降序排序输出的。

4. 总结

我们已经看到了用于列表中的sort()和sorted()函数的对比,同样我们给出了相应的代码示例,进而了解这些函数是如何工作的。简而言之,这两个函数都用于对数据进行排序,但函数sort()只对Python列表进行排序,而sorted()函数用于对可迭代数据进行排序。

对以上进行总结如下:

一文弄懂Python中的sort和sorted函数_python



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有