Using Map function with Lambda in Python: TypeError: () takes 0 positional arguments but 1 was given

Using Map function with Lambda in Python: TypeError: () takes 0 positional arguments but 1 was given

系统:WIN10

IDE: MS VSCode

语言:Python版本 3.7.3

库: pandas 版本 1.0.1

数据来源:下方提供的基础数据

数据集: 下面提供的基础数据

我在尝试使用 "map" 函数映射转换器函数(我使用 lambda 构建)以遍历样本温度列表时遇到问题。下面提供了示例代码,它不断抛出以下错误:TypeError: () takes 0 positional arguments but 1 was given

采取的步骤:

  1. 测试了独立的代码片段以确保自
  2. 以来制作的临时文件中的元组列表
  3. 在线搜索错误代码,但找不到任何内容

代码:

temps = [('Berlin', 29), ('Cairo', 36), ('Buenos Aires', 19), ('Los Angeles', 26), ('Tokyo', 27), ('New York', 28), ('London', 22), ('Beijing', 32)]

c_to_f = lambda: (data[0], (9/5)*data[1] + 32)

list(map(c_to_f, temps))

错误

TypeError: () takes 0 positional arguments but 1 was given

map 函数会将 temps 的每个元素作为参数传递给 c_to_f

更改您的 c_to_f 定义,使其接受参数:

def c_to_f(data):
    return data[0], (9/5)*data[1] + 32

或者只是做:

list(map(lambda data: (data[0], (9/5)*data[1] + 32), temps))