Python 类型错误:<;lambda>;()缺少1个必需的位置参数

Python 类型错误:<;lambda>;()缺少1个必需的位置参数,python,Python,我正在处理一个json文件,需要创建一个数组,稍后在Python代码中可以使用该数组 它需要看起来像这样[[1*5,1.75],[2*5,1.74],[3*5,1.76]…] 所以我可以计算like平均点[x][0]+avgPoints[x+1][0] 我当前的代码如下所示: data = json.loads(json_file) avgData = data['diameter_measurement'].split(',') avgStep = float(data['length'])

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

它需要看起来像这样
[[1*5,1.75],[2*5,1.74],[3*5,1.76]…]
所以我可以计算l
ike平均点[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'
->TypeError:()缺少1个必需的位置参数:“delta”

当您迭代
枚举
时,返回一项:元组
(索引,元素)
。当您调用
lambda
时,它不会隐式地解压到
索引,delta中,因此您必须使用类似
lambda index\u delta的东西来解压它:“使用index\u delta[0]和index\u delta[1]”
。或者,您可以定义一个函数并将函数的单个参数解压到
索引中,然后
delta

映射
将一个参数传递给您提供的函数(取决于您传递给它的iterables的数量,但您只传递了一个*。在这种情况下,您可以使用集合导入星图中的
,或者只使用列表理解使用
list(map(lambda…
)而不是列表comp:-P