“lambda x: x-0 和 x-1”是什么意思?

问题描述 投票:0回答:1

这个表达式有什么作用?

my_tuple = (0, 1, 2, 3, 4, 5)
foo = list(filter(lambda x: x-0 and x-1, my_tuple))
print(foo)

从上面的方程中预计会得到什么输出?

python filter lambda
1个回答
0
投票

lambda
是创建单线性函数的一种快速方法,其中
:
的左侧是函数的参数,右侧是返回值。

让我们从内到外分解这个表达式:

  • lambda x:x-0 and x-1
    是一个函数,它接受
    x
    ,计算
    x-0
    (即
    x
    )、
    x-1
    ,并在它们之间执行逻辑“与”运算。如果
    True
    两边都不为零,则此函数将返回
    and
    。换句话说,如果
    True
    既不是
    x
    也不是
    0
    ,它将返回
    1
  • filter(lambda x:x-0 and x-1, my_tuple)
    采用
    my_tuple
    ,并使用上面定义的函数计算每个元素,仅保留返回
    True
  • 的元素
  • list
    应用于
    filter
    调用的结果会将生成的
    filter
    对象转换为列表。

所以,总结一下 - 这个调用返回一个

list
,其中包含
my_tuple
中不是
0
1
的所有元素。

© www.soinside.com 2019 - 2024. All rights reserved.