TypeError:<lambda>()缺少1个必需的位置参数

时间:2020-03-28 20:11:18

标签: python

我正在使用json文件,我需要创建一个数组,以后可以在我的Python代码中使用该数组。

它需要看起来像这样[[1*5,1.75],[2*5,1.74],[3*5,1.76]...] 这样我就可以计算出l ike avgPoints[x][0]+avgPoints[x+1][0]

我当前的代码如下:

data = json.loads(json_file)

avgData = data['diameter_measurement'].split(',')
avgStep = float(data['length']) / (len(avgData) - 1)
avgPoints = list(map(lambda index, delta: [index * avgStep, 1.75 + float(delta) / 1000.0], enumerate(avgData)))

但是当我运行代码时,它给了我以下错误:

->TypeError: <lambda>() missing 1 required positional argument: 'delta'

1 个答案:

答案 0 :(得分:0)

当您遍历enumerate时,您将获得一项:元组(index, element)。调用index, delta时,不会将其隐式解包到lambda中,因此您必须自己使用lambda index_delta: "use index_delta[0] and index_delta[1]"之类的东西对其进行解包。另外,您可以定义一个函数并将该函数的单个参数解压缩到indexdelta中。