python中的最大值 - 错误丢失1必需的位置参数:'b'

Dha*_*tel 1 python arguments max typeerror

我想在python上做一个练习(我的版本是python33练习如下:

编写一个函数find_longest_word1(),它接受一个单词列表并返回最长单词的长度.仅使用更高阶的功能.

我的尝试是:

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

我得到的错误是:

max() missing 1 required positional argument 'b'
Run Code Online (Sandbox Code Playgroud)

我已经传递了一个列表作为参数.我是否需要为max函数提供其他参数?

NPE*_*NPE 5

max()您调用的函数不是标准内置函数,而是一些其他函数调用max():内置函数没有调用参数,b因此错误消息不可能与它有关.

请仔细检查您是否定义(或导入)了一个名为的函数max().如果我猜,我希望定义看起来像这样:

def max(a, b):
   ...
Run Code Online (Sandbox Code Playgroud)

你的代码在这里工作正常(内置max()):

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

In [51]: max(list(map(len, a)))
Out[51]: 7
Run Code Online (Sandbox Code Playgroud)

顺便说一句,调用list()是不必要的:

In [52]: max(map(len, a))
Out[52]: 7
Run Code Online (Sandbox Code Playgroud)