利用filter和map函数打印所有女生姓名
时间: 2024-02-01 15:16:52 浏览: 101
假设我们有一个包含学生信息的列表 `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函数打印所有女生姓名
假设有一个学生类 `Student`,其中包含姓名(`name`)、性别(`gender`)等属性,可以使用 Java 8 中的 Stream API 来实现利用 filter 和 map 函数打印所有女生姓名的功能,具体代码如下:
```java
import java.util.ArrayList;
import java.util.List;
public class Student {
private String name;
private String gender;
public Student(String name, String gender) {
this.name = name;
this.gender = gender;
}
public String getName() {
return name;
}
public String getGender() {
return gender;
}
public static void main(String[] args) {
List<Student> students = new ArrayList<>();
students.add(new Student("张三", "男"));
students.add(new Student("李四", "男"));
students.add(new Student("王五", "女"));
students.add(new Student("赵六", "女"));
List<String> femaleNames = students.stream()
.filter(s -> s.getGender().equals("女"))
.map(Student::getName)
.toList();
System.out.println("所有女生姓名为:");
femaleNames.forEach(System.out::println);
}
}
```
上述代码中,通过创建一个 `List<Student>` 对象 `students` 存储多个学生信息,然后使用 Stream API 中的 `filter` 和 `map` 函数,先筛选出所有女生信息,再将每个女生的姓名存储到一个 `List<String>` 对象 `femaleNames` 中,最后使用 `forEach` 函数遍历 `femaleNames` 输出每个女生的姓名。
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` 方法遍历输出。
阅读全文