赞
踩
Python中的 sort()
和sorted()
函数主要用于按升序或降序对数据进行排序。在本文中比较用于列表时,两个函数在编程和语法上的差异。
闲话少说,我们直接开始吧!
用于列表排序的sort函数的语法如下:
list.sort(reverse=False, key=None)
用法如下:
我们首先尝试使用上述默认参数来看个事例,样例代码如下:
# 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码进行升序排序。
有时间我们需要按照用户自定义的函数来对列表进行排序,相应的代码示例如下:
# 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
,该参数将根据价格按升序对数据进行排序。
用于列表排序的sorted函数的语法如下:
sorted(iterable, key=None, reverse=False)
用法如下:
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')]
我们同样也可以通过将自定义排序函数传递给函数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,此时输出的数据是按降序排序输出的。
我们已经看到了用于列表中的sort()
和sorted()
函数的对比,同样我们给出了相应的代码示例,进而了解这些函数是如何工作的。简而言之,这两个函数都用于对数据进行排序,但函数sort()
只对Python列表进行排序,而sorted()
函数用于对可迭代数据进行排序。
对以上进行总结如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。