簡體   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