Python的sorted()函数:如何对列表和字典排序
Python中的sorted()函数是一个强大的工具,可以帮助我们对各种数据结构进行排序,包括列表和字典。本文将会介绍sorted()函数的用法,并且通过常见的实例进行演示,让你掌握该函数的基本用法。
1、排序列表
Python的列表是非常常见的数据结构,我们可以使用sorted()函数对列表进行排序。那么具体如何操作呢?
sorted()函数有两个重要的参数,分别是iterable和key。其中iterable是指用来排序的可迭代对象,也就是被排序的列表;key是排序规则。如果没有传入key参数,sorted()函数将默认按照每个元素自身的大小进行排序。
让我们来看几个例子:
1)按元素自身的大小排序
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]
2)按元素绝对值大小排序
lst = [-3, 1, -4, 1, 5, -9, 2, -6, 5, 3, 5]
sorted_lst = sorted(lst, key=abs)
print(sorted_lst)
输出结果为:[1, 1, 2, 3, -3, -4, 5, 5, 5, -6, -9]
在这个例子中,我们传入了一个key函数abs,表示按元素的绝对值大小进行排序。
3)按字符串长度排序
alist = ['python', 'java', 'c++', 'ruby', 'javascript']
sorted_alist = sorted(alist, key=len)
print(sorted_alist)
输出结果为:['java', 'c++', 'ruby', 'python', 'javascript']
在这个例子中,我们传入了一个key函数len,表示按元素的长度进行排序。
2、排序字典
Python的字典也是非常常见的数据结构,它由键值对组成,每个键值对是一个 的映射。那么怎样利用sorted()函数对字典进行排序呢?
虽然字典本身是无序的,但我们可以使用sorted()函数按照键或者值进行排序,让我们来看几个例子。
1)按照键进行排序
mydict = {'apple': 5, 'banana': 2, 'orange': 7, 'peach': 1, 'melon': 9}
sorted_dict = sorted(mydict.items())
print(sorted_dict)
输出结果为:[('apple', 5), ('banana', 2), ('melon', 9), ('orange', 7), ('peach', 1)]
在这个例子中,我们可以看到.sorted()函数按照字典的键进行了排序。函数sorted()的返回结果是一个由键-值对组成的列表,键-值对组成的元组被看成一个整体,组成一个新的列表。
2)按照值进行排序
mydict = {'apple': 5, 'banana': 2, 'orange': 7, 'peach': 1, 'melon': 9}
sorted_dict = sorted(mydict.items(), key=lambda item: item[1])
print(sorted_dict)
输出结果为:[('peach', 1), ('banana', 2), ('apple', 5), ('orange', 7), ('melon', 9)]
在这个例子中,我们传入了一个key函数lambda,表示按字典的值进行排序。我们使用每个键-值对的值作为元素的关键字。
在本例中,sorted()函数将返回一个由键-值对组成的元组列表,但是元组的排序是按照字典的值进行的。
总结
Python的sorted()函数是一个非常灵活的函数,可以对列表、字典等多种数据结构进行排序。在排序列表时,可以根据自己的需求传入不同的key函数进行排序;而对于字典来说,我们可以按照键或值进行排序。熟练掌握sorted()函数的用法,能够极大地提高我们对数据的处理效率。
