首页 > 解决方案 > 找到列表中每个项目的平方 .o/p 应该是一个列表 .write 程序使用 lambda ,使用理解,使用循环

问题描述

找到 list .o/p 中每个项目的平方应该是一个 list .write 程序,使用 lambda ,使用 comprehension ,使用 loop 。

我在下面尝试过,但下面的程序中没有 for 循环,我需要有 lambda ,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>

标签: python-3.xfor-looplambdalist-comprehension

解决方案


正如您尝试从函数返回 lambda 函数一样。因此,当您使用列表推导式调用 square 函数时,它会在每次调用时返回 lambda 函数的对象。因此,如果您想从列表中执行该 lambda 函数,请尝试以下代码


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

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

我希望这会有所帮助。


推荐阅读