list根据对象属性排序
时间: 2023-11-08 22:56:32 浏览: 86
要根据对象属性排序,可以使用`sort()`方法来对list进行排序。`sort()`方法可以接受一个函数作为参数,这个函数可以用来指定排序的规则。
假设我们有一个list存储了多个人的信息,每个人信息都是一个对象,包含了姓名、年龄、身高等属性。我们可以根据年龄或身高等属性来对这些人进行排序。
下面是一个根据年龄属性排序的示例代码:
```python
class Person:
def __init__(self, name, age, height):
self.name = name
self.age = age
self.height = height
people = [Person('Tom', 25, 180), Person('Jerry', 18, 170), Person('Alice', 30, 165)]
# 按年龄从小到大排序
people.sort(key=lambda x: x.age)
# 输出排序后的结果
for person in people:
print(person.name, person.age, person.height)
```
输出结果为:
```
Jerry 18 170
Tom 25 180
Alice 30 165
```
在上面的代码中,我们使用了`sort()`方法,并传入了一个函数作为参数。这个函数使用了lambda表达式来定义排序规则,即按照对象的`age`属性从小到大排序。
如果要按照其他属性排序,只需要修改lambda表达式中的属性名即可。例如,如果要按照身高从大到小排序,可以将lambda表达式修改为`lambda x: -x.height`。
阅读全文