func = lambda x:x%2 result = filter(func, [1, 2, 3, 4, 5]) print(list(result))
一、定义 lambda 函数
func = lambda x:x%2定义了一个匿名函数,也叫 lambda 函数。
lambda x:表示这个函数接收一个参数 x。 x%2:这是函数的主体部分,表示对传入的参数 x 进行取模运算,即计算 x 除以 2 的余数。例如,如果 x = 5,那么 5 % 2 = 1。 二、使用 filter 函数
result = filter(func, [1, 2, 3, 4, 5])这里调用了 Python 内置的 filter 函数。
func是一个判断函数,用于筛选元素。对于列表中的每个元素,都会将其作为参数传递给 func 函数进行判断。 [1, 2, 3, 4, 5]是一个可迭代对象,这里是一个包含整数的列表。filter 函数会依次取出这个列表中的每个元素,将其传递给 func 函数进行判断。如果 func 函数返回 True,则该元素会被保留在结果中;如果返回 False,则该元素会被过滤掉。 例如:
x = 1 时,func(1) 返回 1 % 2 = 1,在 Python 中,非零值被视为 True,所以 1 会被保留在结果中。 x = 2 时,func(2) 返回 2 % 2 = 0,0 在 Python 中被视为 False,所以 2 会被过滤掉。 三、输出结果
print(list(result))将 filter 函数的结果转换为列表并打印出来。
result 是一个迭代器对象,它并不会立即计算出所有的结果,而是在需要的时候逐个生成结果。通过 list(result) 将迭代器转换为列表,这样可以一次性获取所有满足条件的元素。 对于给定的列表 [1, 2, 3, 4, 5],经过上述处理过程,最终输出结果为 [1, 3, 5],因为只有 1、3、5 这三个元素除以 2 的余数为 1,满足筛选条件。