繁体   English   中英

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

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

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

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

采取了以下措施:

  1. 测试了独立的代码片段,以确保创建的临时元组列表自
  2. 在线搜索错误代码,找不到任何东西

代码:

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 function 会将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))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM