LIst 按类中某一属性进行排序
时间: 2024-05-12 17:14:54 浏览: 44
要按照类中某一属性进行排序,可以使用Python内置的sorted函数和lambda表达式。假设有一个类Person,其中有属性name和age,现在要按照age属性进行排序,可以这样做:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person('Alice', 25)
p2 = Person('Bob', 30)
p3 = Person('Charlie', 20)
people = [p1, p2, p3]
# 按照age属性进行排序
sorted_people = sorted(people, key=lambda p: p.age)
for p in sorted_people:
print(p.name, p.age)
```
这段代码中,lambda表达式 `lambda p: p.age` 表示以对象p的age属性作为排序依据。通过调用sorted函数,传入排序依据和待排序的列表,就可以得到按照age属性排序后的列表sorted_people。
相关问题
java LIst 按类中某一属性进行排序
可以使用Java 8的Stream API和Comparator来对List按类中某一属性进行排序。假设我们有一个Person类,其中有name和age两个属性,我们想要按照年龄age进行排序,可以这样实现:
```java
List<Person> people = new ArrayList<>();
// 添加数据到people中
// 按照年龄age进行升序排序
List<Person> sortedPeople = people.stream()
.sorted(Comparator.comparing(Person::getAge))
.collect(Collectors.toList());
// 按照年龄age进行降序排序
List<Person> reverseSortedPeople = people.stream()
.sorted(Comparator.comparing(Person::getAge).reversed())
.collect(Collectors.toList());
```
在上述代码中,我们使用了Stream API的sorted()方法和Comparator.comparing()方法来指定按照Person对象中的age属性进行排序。如果需要按照其他属性进行排序,只需要修改comparing()方法中的参数即可。如果需要按照降序排序,则可以在comparing()方法后调用reversed()方法。最后,我们使用collect()方法将排序后的结果转化为List。
对list的某一属性排序
可以使用Python的内置函数`sorted()`和`lambda`表达式,将要排序的属性作为`key`参数传入。例如,假设有一个列表`list_of_dicts`,其中每个元素都是一个字典,包含`name`和`age`两个属性,要按照`age`属性进行排序,可以这样实现:
```
sorted_list = sorted(list_of_dicts, key=lambda x: x['age'])
```
这里的`lambda`表达式定义了一个匿名函数,接受一个字典作为输入,返回该字典的`age`属性值。`sorted()`函数会按照这个函数的返回值对列表进行排序,从而实现按照`age`属性排序的效果。
阅读全文