Python编写函数,模拟内置函数filter()。编写代码进行验证。
时间: 2023-11-10 18:18:34 浏览: 85
好的,我可以帮你编写一个类似于内置函数filter()的函数。
代码如下所示:
```python
def my_filter(func, iterable):
"""
模拟内置函数filter(),对可迭代对象中的元素进行筛选。
:param func: 筛选函数,接受一个参数,返回一个bool值。
:param iterable: 可迭代对象,需要筛选的元素来源。
:return: 一个迭代器,返回筛选后的元素序列。
"""
for element in iterable:
if func(element):
yield element
```
这个函数接受两个参数,第一个参数是筛选函数,该函数接受一个参数并返回一个bool值,用于判断该元素是否符合筛选条件。第二个参数是可迭代对象,需要筛选的元素来源。
接下来我们可以编写一些测试代码来验证这个函数的正确性:
```python
# 定义一个筛选函数,用于判断元素是否是偶数
def is_even(num):
return num % 2 == 0
# 测试用例
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 使用内置函数filter()进行筛选
result_1 = filter(is_even, numbers)
print(list(result_1))
# 使用模拟函数my_filter()进行筛选
result_2 = my_filter(is_even, numbers)
print(list(result_2))
```
运行结果如下所示:
```
[2, 4, 6, 8, 10]
[2, 4, 6, 8, 10]
```
可以看到,使用模拟函数my_filter()进行筛选的结果与内置函数filter()的结果完全一致,因此可以证明该函数的正确性。
阅读全文