Найти квадрат каждого элемента в списке .o / p должна быть программой list .write, использующей лямбду, используя понимание, используя цикл - PullRequest
0 голосов
/ 30 июня 2019

Найти квадрат каждого элемента в списке .o / p должна быть программой списка .write, использующей лямбду, используя понимание, используя цикл.

Я пробовал ниже, но в приведенной ниже программе нет цикла for, и мне нужно иметь лямбду, для цикла с методом понимания списка ..

x =[i**2 for i in l1]
print(x)
[1, 4, 9]


squares = map(lambda x:x*x,l1)
print(list(squares))

[1, 4, 9]

y =map(lambda x: x*x,range(1,10))
print(list(y))

[1, 4, 9, 16, 25, 36, 49, 64, 81]

def square(x): return lambda : x*x

listOfLambdas = [square(i)  for i in range(1, 6)]
for f in listOfLambdas:
   print(f)

output
<function square.<locals>.<lambda> at 0x02FF7DB0>
<function square.<locals>.<lambda> at 0x02FF7DF8>
<function square.<locals>.<lambda> at 0x02FF7E40>
<function square.<locals>.<lambda> at 0x02FF7E88>
<function square.<locals>.<lambda> at 0x02FF7ED0>

1 Ответ

0 голосов
/ 30 июня 2019

Как вы пытались вернуть лямбда-функцию из функции. Поэтому, когда бы вы ни вызывали квадратную функцию с использованием понимания списка, она возвращает объект лямбда-функции при каждом вызове. Так что если вы хотите выполнить эту лямбда-функцию из списка, попробуйте следующий код


def square(x): return lambda x: x*x

listOfLambdas = [square(i)(i)  for i in range(1, 6)]
for f in listOfLambdas:
    print(f)

Надеюсь, это поможет.

...