我正在尝试学习在 python 中做简单事情的不同方法,同时也学习一些功能实践。我有一些用户输入的数字,我想知道它们是否真的是数字。我想出了这种经典的解决方案:
def foo(list_of_inputs):
for n in list_of_inputs:
if not hasattr(n, "real"):
# some number is not a number!
return False
# all are numbers
return True
但是后来,我发现了另一个可能有潜力的“东西”:
def foo(list_of_inputs):
bool_list = map(lambda input: hasattr(input, "real"), list_of_inputs)
return reduce(lambda x, y: x == y, bool_list)
我认为,如果集合的所有成员、可迭代或我正在寻找的任何正确概念都是“True”,则可能返回“True”的函数可能已经有些普遍,而且,第二次尝试没有当找到“False”时不会返回,而经典的会返回......但我觉得它很优雅,也许那是因为我还没有进行一般的编程。
所以我的问题是:“可能更好”的方法是什么?