Как я могу получить куби c каждого элемента в списке? - PullRequest
0 голосов
/ 11 января 2020

Я использую анонимную функцию, и мне нужно кубировать c каждый элемент в списке, вызывая нормальную функцию в анонимной функции. Как я могу исправить мою ошибку ниже?

list1 = [2,3,4,5,6,7,8,9]

def cubic(n):
    return n*n*n

f = list(map(cubic(n),list1))

Ответы [ 3 ]

3 голосов
/ 11 января 2020

Ваша попытка была близка. Вы хотите передать cubic функцию как первоклассное значение map, а не вызывать его, поэтому замените map(cubic(n),list1) на map(cubic,list1).

1 голос
/ 11 января 2020

map позвонит вам cubic, поэтому вам не следует использовать скобки с ним. Попробуйте это:

list1 = [2,3,4,5,6,7,8,9]

def cubic(n):
    return n**3

cubed_list = list(map(cubic, list1))
print(cubed_list)  # [8, 27, 64, 125, 216, 343, 512, 729]

В качестве альтернативы, вы можете использовать понимание списка.

list1 = [2,3,4,5,6,7,8,9]
cubed_list = [n**3 for n in list1]
print(cubed_list)  # [8, 27, 64, 125, 216, 343, 512, 729]
0 голосов
/ 11 января 2020

Для списка вам даже не нужно создавать функцию для выполнения sh этого. Вы можете передать список в список:

[x**3 for x in list1]

Это вернет список с каждым значением в предыдущем списке в кубе! Супер фантазия c небольшая сделка. И если вам нужно применить более сложное вычисление к каждому значению, которое вы используете, и использовать ВАШУ функцию в понимании:

[your_function(x) for x in list1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...