Python 中lambda和zip组合使用报错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 中lambda和zip组合使用报错相关的知识,希望对你有一定的参考价值。
input_vec=[1,1]
weights=[0.0,0.0]
print(list(map(lambda x,w: x * w,zip(input_vec, weights))
报错信息如下:
TypeError: <lambda>() missing 1 required positional argument: 'w'
我知道zip(input_vec, weights)的值为 [(1,0.0),(1,0.0)],
但不知为何会提示参数个数不对,无法得出预期的结果,求各位朋友帮忙解惑。谢谢
我的Python版本为3.6.1。
第三行: print(list(map(lambda x,w: x * w,zip(input_vec, weights)) 后面再加2个")",
def _update_weights(self, input_vec, output, label, rate):
delta = label - output
self.weights = list(map(
lambda x: x[1] + rate * delta * x[0],
list(zip(input_vec, self.weights))))
# 更新bias
self.bias += rate * delta 参考技术A
直接用列表解析会好一点
wenjie@digi007:~/work/multiDB$ python3.6Python 3.6.1 (default, Mar 22 2017, 06:17:05)
[GCC 6.3.0 20170321] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> input_vec=[1,1]
>>> weights=[0.0,0.0]
>>> L = [i*j for i,j in zip(input_vec, weights)]
>>> print(L)
[0.0, 0.0]
>>> print(list(map(lambda x: x[0]*x[1], zip(input_vec, weights))))
[0.0, 0.0]本回答被提问者和网友采纳 参考技术B lambda表达式以元组作为参数,在python2和python3中写法是有区别的:
# python2
lambda (x, w) : x * w
#python3
lambda x_w : x_w[0] * x_w[1]
不知道帮到你了没 参考技术C #去掉zip
input_vec=[1,1]
weights=[0.0,0.0]
print(list(map(lambda x,w: x * w,input_vec, weights))) 参考技术D return self.activator(reduce(lambda a,b: a+b,list(map(lambda x: x[0]*x[1], zip(input_vec, self.weights))),0.0)+self.bias)
如何在 AWS Lambda 中使用 Python 自定义包
【中文标题】如何在 AWS Lambda 中使用 Python 自定义包【英文标题】:How to work with Python custom packages in AWS Lambda 【发布时间】:2021-01-17 12:41:43 【问题描述】:我的 app.py 函数使用 pip 库(如 SQLAlchemy 等)...我将其部署到 AWS Lambda,因此我将 app.py 和所有其他依赖项打包到一个 zip 中。
-
有没有更好的方法来解决这个问题? (如果 pip 库过时了怎么办)
我有一个要在许多程序中使用的自定义代码。如何创建自己的模块并将其与 pip 库一起打包?
【问题讨论】:
这应该会有所帮助:towardsdatascience.com/… 【参考方案1】:是的,我将为您的每个问题提供一些替代方案:
您可以使用 *framework (chalice/serverless) 自动为您处理打包。每次部署都会获取最新版本(根据您的 requirements.txt
)然后为您打包。我建议你坚持使用框架。
Lambda Layer 正是您所需要的 - 多个 lambda 将能够运行您的模块而无需开销(简单来说)。有很多参考资料解释了如何创建一个层以及关于 python 打包(你是必须评估是否需要将其上传到 pypi 的人)
在这两种情况下,serverless
都会对您有很大帮助!
【讨论】:
【参考方案2】:关于 1 - AWS SAM 将计算出您的 requirements.txt
并将所需的内容与您的代码捆绑在一起。这适用于小型项目,但对于较大的项目,我建议采用与库代码相同的方式 - 将所有部门放在单独的层中。可以用pip install -U --target dirname
安装,然后打包成一个层。
【讨论】:
以上是关于Python 中lambda和zip组合使用报错的主要内容,如果未能解决你的问题,请参考以下文章
在 terraform 中将 2 个 python 文件添加到 lambda_zip [重复]