不带循环的条件语句

2024-06-16 09:28:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个小函数来检查列表中的所有元素是否都小于或等于一个限制。这只是为了练习,不应该使用任何循环。在

def small_enough(a, limit): 
    return all(x <= limit for x in a)
small_enough([66, 101], 200)

在这方面已经有一段时间了,但是我找不到任何替代代码来替换for循环。这个虽然代码运行得非常好,但是我试图在不使用循环的情况下得到结果。试着写些更“Python”的东西。在


Tags: 函数代码in元素列表forreturndef
3条回答

当然,您可以在这里使用递归:

def small_enough(a, limit):
    if a:
        return a[0] <= limit and small_enough(a[1:], limit)
    else:
        return True

甚至是

^{pr2}$

但是你的解决方案确实比这个更具可读性。此外,递归doesn't actually avoid looping,只是看起来不同而已。在

总的来说

f(x) for x in xs == map(f, xs) 

所以

^{pr2}$

如果使用numpy是可以的,您可以这样做

import numpy as np

x = np.asarray([66,101])
print(all(x <= 200))

相关问题 更多 >