我有许多小代码看起来像:
for it in <iterable>:
if <condition>:
return True/False
有没有办法可以用lambda表达式重写这段代码?我知道我可以用一个小方法/函数来解决它,但是如果可以的话,我正在寻找一些lambda事件。
答案 0 :(得分:6)
答案 1 :(得分:1)
除了其他人所说的,反之亦然:
for it in <iterable>:
if <condition>:
return False
return True
使用all():
b = all(<condition> for it in <iterable>)
答案 2 :(得分:0)
如果True
中的任何对象等于it
,这是一个返回2
的简单示例。使用map
函数:
any(map(lambda x: x==2, it))
更改lambda表达式以反映您的情况。
另一个好方法是将any
与列表理解结合使用:
any([True for x in it if x==2])
或者,生成器表达式:
any(x==2 for x in it)
答案 3 :(得分:0)
如果要检查可以使用的每个iterable项的条件 listcomprehensions to this
b = [ x == whatever for x in a ]
如果你只需要知道是否有一个元素,你可以将它与any结合起来 为你的病情而言,这是真实的。
b = any(x == whatever for x in a)