Попытка решить проблему с картами и лямбдами - PullRequest
1 голос
/ 05 апреля 2020

Я пытаюсь решить проблему, используя карты и лямбды, но я никогда не прохожу все тесты, как и 95% из них.

Проблема в следующем:

"Учитывая два целочисленных массива a, b, оба длиной> = 1, создайте программу, которая возвращает true, если сумма квадратов каждого элемента в a равна строго больше, чем сумма кубов каждого элемента в b. "

Это мой код:

def array_madness(a,b):
    if sum(list(map(lambda num: num**2, a))) > sum(list(map(lambda num: num**2, b))):
        return True
    return False

Что я делаю не так?

Ответы [ 3 ]

3 голосов
/ 05 апреля 2020

Это должно быть:

return sum(map(lambda num: num**2, a)) > sum(map(lambda num: num**3, b))

Вас просят о кубах элементов в b. Кроме того, нет необходимости преобразовывать результат map в список, sum отлично работает как есть. И вам не нужно использовать if здесь, просто вернуть результат сравнения.

1 голос
/ 05 апреля 2020
def array_madness(a,b):
if sum(list(map(lambda num: num**2, a))) > sum(list(map(lambda num: num**2, b))):
    print (True)
else:
    print (False)

Над ответом lopez над зеленой галочкой ничего печатать не будет, поскольку return будет хранить только значение. печать должна быть вызвана. Пожалуйста, попробуйте это, если заявление. У меня это сработало.

Как array_madness ([4,2], [5])

0 голосов
/ 05 апреля 2020

Неважно, я видел проблему, я написал квадратные числа, а не числа куба во второй лямбде

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...