Python中的sorted()函数-列表元素排序
Python是一门强大的编程语言,拥有丰富的内置函数。其中一个有用的内置函数是Python中的sorted()函数,该函数可以帮助我们对列表元素进行排序。在本文中,我们将学习如何使用Python中的sorted()函数来对列表进行排序。
1. 什么是sorted()函数?
sorted()函数是Python内置的一个函数,它的作用是对给定的序列进行排序,并返回一个新的有序列表,即它不会修改原列表。这个函数可以对列表、元组、集合、字典等结构进行排序。
2. sorted()函数的基本用法
sorted()函数有两个重要的参数,分别是要排序的序列和关键字参数。在没有关键字参数的情况下,sorted()函数默认按照从小到大的顺序排序。下面是一个简单的例子:
>>> a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] >>> b = sorted(a) >>> print(b) [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
从上面的例子中,我们可以看到,如果不指定关键字参数,默认情况下sorted()函数是升序排序。
3. 对列表元素进行降序排列
sorted()函数默认是升序排列,如果想要降序排列,可以通过关键字参数reverse=True来实现。下面是一个例子:
>>> a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] >>> b = sorted(a, reverse=True) >>> print(b) [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
可以看到,当reverse=True时,sorted()函数对列表进行降序排列。
4. 对列表元素进行按绝对值升序排列
有时候,我们需要按照绝对值对列表元素进行排序,这个时候,我们可以通过关键字参数key来实现。下面是一个例子:
>>> a = [-3, 1, 4, -1, 5, -9, 2, 6, -5, 3, -5] >>> b = sorted(a, key=abs) >>> print(b) [1, -1, 2, 3, -3, 4, 5, -5, -5, 6, -9]
从上面的例子中,我们可以看到,当我们指定key=abs时,sorted()函数会将a中的元素按照绝对值升序排列。
5. 对列表中元素为字典的情况进行排序
有时候,我们需要对列表中的元素为字典进行排序。在这种情况下,我们可以通过关键字参数key来实现。下面是一个例子:
>>> a = [{'name': '张三', 'age': 20}, {'name': '李四', 'age': 30}, {'name': '王五', 'age': 25}]
>>> b = sorted(a, key=lambda x: x['age'])
>>> print(b)
[{'name': '张三', 'age': 20}, {'name': '王五', 'age': 25}, {'name': '李四', 'age': 30}]
从上面的例子中,我们可以看到,当我们指定key=lambda x: x['age']时,sorted()函数会按照字典的age字段对a中的元素进行升序排列。
6. 对列表中元素为元组的情况进行排序
有时候,我们需要对列表中的元素为元组进行排序。在这种情况下,我们可以通过关键字参数key来实现。下面是一个例子:
>>> a = [(3, 8), (2, 6), (1, 2), (9, 6), (5, 9)] >>> b = sorted(a, key=lambda x: x[1]) >>> print(b) [(1, 2), (2, 6), (9, 6), (3, 8), (5, 9)]
从上面的例子中,我们可以看到,当我们指定key=lambda x: x[1]时,sorted()函数会按照元组的第二个元素对a中的元素进行升序排列。
7. 对列表中元素为自定义类的情况进行排序
有时候,我们需要对列表中的元素为自定义类进行排序。在这种情况下,我们需要在自定义类中定义__lt__()方法。__lt__()方法代表“<”运算符的重载。下面是一个例子:
class Student:
def __init__(self, name, score):
self.name = name
self.score = score
def __lt__(self, other):
return self.score < other.score
a = [Student('张三', 80), Student('李四', 90), Student('王五', 70)]
b = sorted(a)
for i in b:
print(i.name, i.score)
从上面的例子中,我们可以看到,通过在自定义类中定义__lt__()方法,我们可以将a中的元素按照score属性升序排列。
总结
在Python中,sorted()函数是一个非常有用的内置函数,它可以帮助我们对列表、元组、集合、字典等结构进行排序。通过这篇文章的学习,我们掌握了sorted()函数的基本使用方法,并且了解了如何对列表中元素为字典、元组、自定义类的情况进行排序。
