list1 = [2,4,5,6,7,89]
lambdafunction = lambda x: x > 20
print(any(lambdafunction(list1)))
我基本上希望它在条件x>上打印真或假.如果列表中的任何数字大于20,我将如何使用’any’函数和lambda?我知道如何检查列表中的特定位置,但不知道如何检查整个列表.
解决方法:
为了保持功能,您可以使用map:
list1 = [2,4,5,6,7,89]
lambdafunction = lambda x: x > 20
print(any(map(lambdafunction, list1)))
map返回python3中的迭代器,因此将对lazily值进行延迟计算.如果您列表中的第一个元素是> 20,迭代器不会消耗更多的值.
In [1]: list1 = [25,4,5,6,7,89]
In [2]: lambdafunction = lambda x: x > 20
In [3]: it = map(lambdafunction, list1)
In [4]: any(it)
Out[4]: True
In [5]: list(it)
Out[5]: [False, False, False, False, True]
标签:python,lambda
来源: https://codeday.me/bug/20190722/1504157.html