利用filter和map函数打印所有女生姓名
时间: 2024-02-01 21:16:52 浏览: 106
假设我们有一个包含学生信息的列表 `students`,其中每个元素都是一个字典,包含了学生的姓名、性别等信息。那么我们可以通过以下代码来打印所有女生的姓名:
```python
# 学生信息列表
students = [
{'name': '张三', 'gender': '男'},
{'name': '李四', 'gender': '男'},
{'name': '王小丽', 'gender': '女'},
{'name': '赵晓芳', 'gender': '女'},
]
# 使用 filter 和 map 函数打印所有女生的姓名
female_names = list(map(lambda x: x['name'], filter(lambda x: x['gender'] == '女', students)))
print(female_names)
```
输出结果为:
```
['王小丽', '赵晓芳']
```
上述代码中,我们首先使用 `filter` 函数筛选出所有 `gender` 字段为 `'女'` 的字典,然后使用 `map` 函数将每个字典的 `name` 字段取出来,最后使用 `list` 函数将结果转化为列表并打印出来。
相关问题
java 利用filter和map,stream函数打印所有女生姓名
假设有一个学生类 `Student`,其中包含 `name` 和 `gender` 两个属性,可以按以下方式打印所有女生姓名:
```java
List<Student> students = new ArrayList<>();
students.add(new Student("Tom", "male"));
students.add(new Student("Alice", "female"));
students.add(new Student("Bob", "male"));
students.add(new Student("Lisa", "female"));
students.stream()
.filter(s -> s.getGender().equals("female"))
.map(Student::getName)
.forEach(System.out::println);
```
上述代码中,我们使用了 `filter` 方法过滤出所有性别为女的学生,然后使用 `map` 方法将学生对象映射成姓名字符串,最后使用 `forEach` 方法遍历输出。
查询所有内财的女生,利用filter map stream函数
假设有一个名为`students`的`List`,其中每个元素都包含了学生的信息,包括姓名、性别和所在部门等字段,可以按照以下代码实现查询所有内财部门的女生:
```java
List<Student> internalFinanceFemaleStudents = students.stream()
.filter(student -> student.getDepartment().equals("内财"))
.filter(student -> student.getGender().equals("女"))
.collect(Collectors.toList());
```
这里使用了两个`filter`函数,第一个`filter`用于筛选出所在部门为“内财”的学生,第二个`filter`用于筛选出性别为“女”的学生。最后使用`collect`函数将结果收集到一个新的`List`中。
阅读全文