итерация питона над * аргументами - PullRequest
0 голосов
/ 09 декабря 2018
sum_even_values(1,2,3,4,5,6) # 12
sum_even_values(4,2,1,10) # 16
sum_even_values(1) # 0

# define sum_even_values
def sum_even_values(*args):        
    #return sum( x for x in args if x%2==0 )        
    return sum (filter(lambda x: x%2==0, args))

--- возвращаемая сумма (фильтр (аргументы, лямбда-x: x% 2 == 0))

--- TypeError: объект 'function' не повторяется

Почему отображается TypeError, если args является итеративным объектом и фильтр хочет дать только четные числа для функции sum.оба возврата должны иметь одинаковый вывод, но второй не работает.то же самое происходит с кодом ниже.

sum_floats(1.5, 2.4, 'awesome', [], 1) # 3.9
sum_floats(1,2,3,4,5) # 0

def sum_floats(*args):    
    #return sum(x for x in args if type(x)==float)
    return sum ( filter ( args, lambda x : type(x)==float))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...