不懂Pythonlambda函数语法

我不明白这个语法是如何工作的,也找不到关于它的文档:

word = '123xyz567'
s = ''.join (c if c.isdigit() else ' 'for c in word)

代码的第 2 行将采用 xyz123 并"123 567"通过传入一个要连接的 lambda 函数将它们连接成一个字符串

但是,我对这种语法的工作方式感到困惑,通常是一个 python if-else 语句:

def example():
    for c in word:
        if c.isdigit():
            return c
        else:
            return ' ' 

有人可以解释或指导我查看向我解释传入的 lambda 函数的语法结构.join()以及我如何正确使用它的文档吗?

回答

那不是一个 lambda 表达式,而是一个生成器表达式。

https://www.python.org/dev/peps/pep-0289/

几乎就像一个列表理解,而是一个生成器文字。

list = [a for a in [1,2,3]]
generator = (a for a in [1,2,3])
print(list) # [1,2,3]
print(generator) # <generator object <genexpr> at 0x7f8ee3abd6d0>

  • Note that you shouldn't use `list` as a variable name as it might override the built-ins.

以上是不懂Pythonlambda函数语法的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>