Python中`sorted()`函数的用途和排序方法
发布时间:2023-06-16 17:47:20
Python中的sorted()函数是一种内置的排序方法,它可以将列表、元组、字符串等数据类型中的元素按照一定规则进行排序。sorted()函数根据特定的顺序排序,可以根据字符编码、字符串长度、数字大小、正反排序等不同方法进行排序。下面是sorted()函数的一些常见用途和排序方法。
1.将列表排序
sorted()函数可以对列表中的元素进行排序,按元素的默认排序方式进行排序,并返回一个已排序的列表。
#将列表按升序排序 lst1 = [5, 2, 7, 1, 9, 3] res1 = sorted(lst1) print(res1) #[1, 2, 3, 5, 7, 9] #将列表按降序排序 lst2 = [5, 2, 7, 1, 9, 3] res2 = sorted(lst2, reverse=True) print(res2) #[9, 7, 5, 3, 2, 1]
2.将字符串排序
sorted()函数可以对字符串按照指定顺序进行排序。默认情况下,sorted()函数将按字母的Unicode码点排序。
#按Unicode码点升序排序 str1 = 'acebd' res1 = sorted(str1) print(res1) #['a', 'b', 'c', 'd', 'e'] #按Unicode码点降序排序 str2 = 'acebd' res2 = sorted(str2, reverse=True) print(res2) #['e', 'd', 'c', 'b', 'a']
3.自定义排序方式
sorted()函数还可以接受一个关键字参数key,用于自定义排序规则。key指定的函数将应用于每个元素,用于提取比较用的排序关键字。
#按照字符串长度排序 lst = ['apple', 'banana', 'orange', 'pear'] res = sorted(lst, key=len) print(res) #['pear', 'apple', 'orange', 'banana']
上述代码中,我们定义了一个匿名函数key,它将应用于每个字符串,使用len()函数来提取字符串的长度作为排序关键字。
4.多维排序
有时需要按多个条件对元素进行排序,这时可以通过lambda函数来实现多维排序。
#按照元组的第二个元素进行排序,若第二个元素相同,再按第一个元素排序 lst = [(1, 5), (2, 3), (3, 7), (2, 1), (1, 4)] res = sorted(lst, key=lambda x: (x[1], x[0])) print(res) #[(2, 1), (1, 4), (2, 3), (1, 5), (3, 7)]
上述代码中,我们使用lambda函数来自定义排序规则。该函数不直接按元素进行排序,而是使用一个元组来表示多个排序规则。在这个例子中,我们首先按元组的第二个元素进行排序,如果第二个元素相同,再按元组的第一个元素进行排序。
总之,sorted()函数是一个非常强大的排序函数,可以根据不同需求灵活使用。熟练掌握sorted()函数的用法,可以让我们在数据处理中更加自如。
