python-3.x - 找到列表中每个项目的平方 .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>
解决方案
正如您尝试从函数返回 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)
我希望这会有所帮助。
推荐阅读
- android - GetToken 失败,状态码:ServiceDisabled
- oracle - 运行 SELECT DISTINCT 后,仍然显示重复项
- apache - Mod重写导致内部服务器错误,错误500
- java - 如何在迭代时从 ArrayList 中删除对象而不会出现“并发修改错误”
- spring-cloud-stream - 春天云流有http binder吗?
- tensorflow2.0 - 使用 TensorFlow Probability 学习分类变量
- php - 表中的PHP表
- javascript - classList Value 使用 New Date 函数引发错误
- python - 为什么这个程序返回无?
- amp-html - 如何创建动态嵌套放大器手风琴迭代问题