Я пытаюсь изучить различные способы выполнения простых вещей в python, а также немного узнать о некоторых функциональных практиках. У меня есть некоторые цифры, которые пользователь вводит, и я хочу знать, действительно ли они номера. Я придумал этот вид классического решения:Есть ли функция в python, которая возвращает true, если все члены итеративного являются истинными?
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)
Я думаю, что, может быть функция, возвращает «Истинно», если все члены коллекции, итерируемые или что-то, что правильная концепция, которую я ищу, являются «Верными», может уже быть чем-то более распространенным, а также эта вторая попытка не возвращается, когда «False «найден, в то время как классический делает ... Но я нахожу его изящным, и, возможно, это потому, что я еще не с программированием вообще.
Итак, мой вопрос: какой способ «вероятно, лучше» это сделать?
Http: //docs.python. org/2/library/functions.html # all –
Вы обычно используете 'all' с выражением генератора:' all (hasattr (input, 'real') для ввода в list_of_inputs) '. –
Это на самом деле лучший способ, который я видел до сих пор, даже если отрицает, где я думал, что найду его (за некоторыми функциональными связями). Спасибо – ferhtgoldaraz