Python中lambda x: x-0 and x-1含义及对应filter代码输出咨询
问题解答
一、lambda表达式lambda x: x-0 and x-1的含义
这个匿名函数接收参数x,核心逻辑是通过and运算符判断两个表达式的真假:
x-0等价于x,在Python里0被视为假值,非零值被视为真值x-1是计算x减1的结果,同样0为假,非零为真
and运算符的规则是:如果第一个表达式为假,直接返回该假值;如果第一个为真,则返回第二个表达式的结果。所以这个lambda最终效果是:当x既不等于0也不等于1时,返回非零值(视为真);当x是0或1时,返回0(视为假)。
二、代码功能与预期输出
先看完整代码:
my_tuple = (0, 1, 2, 3, 4, 5) foo = list(filter(lambda x: x-0 and x-1, my_tuple)) print(foo)
功能说明
这段代码的作用是从元组my_tuple中筛选出既不等于0也不等于1的元素,最后将筛选结果转换成列表并打印。
预期输出
逐个分析元组中的元素:
- 0:
0-0=0,and直接返回0(假),被过滤 - 1:
1-0=1,接着1-1=0,and返回0(假),被过滤 - 2、3、4、5:这几个值满足
x≠0且x≠1,and运算返回非零值(真),会被保留
最终运行后输出:
[2, 3, 4, 5]
内容的提问来源于stack exchange,提问作者user26230692
相关产品推荐
相关产品推荐

