filter、flatMap
时间: 2023-08-15 20:14:49 浏览: 119
swift map,reduce,filter,flatmap
filter和flatMap是函数式编程中常用的操作。
filter函数用于筛选集合中满足特定条件的元素。它接受一个函数作为参数,该函数被用于判断集合中的每个元素是否满足条件。只有满足条件的元素才会被保留下来,而不满足条件的元素将被过滤掉。最终返回一个新的集合,其中包含满足条件的元素。
例如,假设有一个整数集合[1, 2, 3, 4, 5],我们可以使用filter函数筛选出偶数:
```python
numbers = [1, 2, 3, 4, 5]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers))
```
输出结果为[2, 4],即保留了所有偶数。
flatMap函数则是对集合中的每个元素应用一个函数,并将其结果打平成一个新的集合。它将每个元素映射为一个新的集合,然后将这些新集合合并为一个大集合。
例如,假设有一个字符串集合['Hello', 'World'],我们可以使用flatMap函数将每个字符串拆分为单个字符:
```python
words = ['Hello', 'World']
characters = flatMap(lambda word: list(word), words)
print(list(characters))
```
输出结果为['H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd'],即将每个字符串拆分为单个字符后合并为一个新的集合。
需要注意的是,filter和flatMap函数都是返回一个惰性计算的结果,需要通过list函数将其转换为列表以便查看结果。
阅读全文