Lambdas Python for循环

Max*_*Kim 7 python lambda

如果某些元素是非数字的,我想在循环内部使用lambdas返回:

strs = ['1234', 'hello', '6787']
Run Code Online (Sandbox Code Playgroud)

我可以使用for循环并遍历每个元素:

for elem in strs:
Run Code Online (Sandbox Code Playgroud)

并检查elem.islpha().

但是,有没有办法使用lambdas耦合for循环来返回单词"hello"

Ósc*_*pez 13

试试这个,使用列表理解很容易:

lst =  ['1234', 'hello', '6787']
[x for x in lst if x.isalpha()]
=>  ['hello']
Run Code Online (Sandbox Code Playgroud)

或者如果你肯定想要使用lambda:

filter(lambda x: x.isalpha(), lst)
=>  ['hello']
Run Code Online (Sandbox Code Playgroud)

请注意,您很少使用lambdas在for循环内进行过滤,这不是惯用的.从列表中过滤元素的方法是使用列表推导,生成器表达式或(不太推荐)filter()内置函数.