list根据某个字段倒序
时间: 2023-10-09 15:16:45 浏览: 85
你可以使用 `sorted` 函数来根据某个字段倒序排序一个列表。下面是一个示例:
```python
students = [
{'name': 'Alice', 'age': 20},
{'name': 'Bob', 'age': 19},
{'name': 'Charlie', 'age': 21}
]
# 根据年龄倒序排序
students_sorted = sorted(students, key=lambda x: x['age'], reverse=True)
print(students_sorted)
```
输出:
```
[{'name': 'Charlie', 'age': 21}, {'name': 'Alice', 'age': 20}, {'name': 'Bob', 'age': 19}]
```
在这个示例中,我们使用 `sorted` 函数,将 `students` 列表按照每个元素中的 `'age'` 字段进行倒序排序。我们使用了 `key` 参数来指定排序的依据,其中 `lambda x: x['age']` 表示对于每个元素 `x`,使用其 `'age'` 字段的值作为排序的依据。`reverse=True` 则表示是倒序排序。
相关问题
list stream 根据 某个字段倒序排
在Java中,`List` 和 `Stream` 结合可以方便地处理集合数据并实现按特定字段倒序排序的功能。假设你有一个包含自定义对象(比如User类)的List,并且User类有一个名为age的字段,你可以这样做:
```java
import java.util.List;
import java.util.stream.Collectors;
class User {
private String name;
private int age;
// getters and setters...
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
public List<User> sortedUsersByAgeDesc(List<User> users) {
return users.stream()
.sorted(Comparator.comparing(User::getAge).reversed())
.collect(Collectors.toList());
}
```
在这个例子中,`stream()`将List转换为流(Stream),`sorted()`方法接受一个Comparator用于指定排序规则,`reversed()`则让排序结果从大到小,最后通过`collect()`方法收集回一个新的List。
java8 list集合根据某个字段倒序排序
可以回答这个问题。可以使用Java8的lambda表达式和Comparator来进行排序,示例代码如下:
```
List<Person> personList = new ArrayList<>();
// 假设Person类有name和age两个字段
// 进行填充操作...
personList.sort(Comparator.comparing(Person::getAge).reversed());
```
其中,Person类的getAge方法返回年龄字段的值,在这里作为排序的依据。reversed()方法表示倒序排序。
阅读全文