2014-12-27 90 views
0

我試圖做蟒蛇一個鍛鍊(我的版本是python33 演習寫着:最大的蟒蛇 - 錯誤失蹤1人需要位置參數:「B」

寫一個函數find_longest_word1(),它單詞的列表,並返回最長的長度只能使用高階函數

我的嘗試是:。

def find_longest_word1(a): 
    out = max(list(map(len,a))) 
    print (out) 
find_longest_word1(["This","is","a","listing"]) 

ŧ他得到的錯誤是:

max() missing 1 required positional argument 'b' 

我已經通過一個列表作爲參數。我需要給max函數一些其他參數嗎?

+1

你有沒有在你的代碼做了'從numpy的進口*'什麼地方?或者類似的東西? – Ffisegydd 2014-12-27 16:14:38

+1

感謝您的指針。我之前練習的代碼有兩個參數的用戶定義的最大函數。對我來說不好。 – 2014-12-27 16:16:56

+1

這在我的電腦上正常工作 – Hackaholic 2014-12-27 16:18:17

回答

5

max()功能您呼叫不是standard built-in,但有的叫max()其他功能:內置的沒有一個說法叫b所以該錯誤信息不可能是它。

請仔細檢查您是否定義(或導入)了一個名爲max()的函數。如果我猜的話,我期望的定義是這樣的:

def max(a, b): 
    ... 

你的代碼工作正常這裏(用內置max()):

In [50]: a = ["This", "is", "a", "listing"] 

In [51]: max(list(map(len, a))) 
Out[51]: 7 

順便說一句,在來電list()是不必要的:

In [52]: max(map(len, a)) 
Out[52]: 7 
0

,你可以簡單地使用關鍵:

你質疑

說返回長度:

>>> len(max(my_list, key=len)) 
7 
+6

這並不回答OP的問題,他想知道爲什麼'max'函數要求'b'參數。你剛給了他一個使用內建'max'的解決方案,但是如果他覆蓋了'max'函數(這似乎是合理的假設),那麼你的解決方案仍然無法工作。 – Ffisegydd 2014-12-27 16:18:29

相關問題