Alp*_*ega 3 python function conditional-statements
我不明白这个语法是如何工作的,也找不到关于它的文档:
word = '123xyz567'
s = ''.join (c if c.isdigit() else ' 'for c in word)
Run Code Online (Sandbox Code Playgroud)
代码的第 2 行将采用 xyz123 并"123 567"
通过传入一个要连接的 lambda 函数将它们连接成一个字符串
但是,我对这种语法的工作方式感到困惑,通常是一个 python if-else 语句:
def example():
for c in word:
if c.isdigit():
return c
else:
return ' '
Run Code Online (Sandbox Code Playgroud)
有人可以解释或指导我查看向我解释传入的 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>
Run Code Online (Sandbox Code Playgroud)