列出max()方法

时间:2014-08-24 06:53:44

标签: python list python-2.7 types

我看过this。我还阅读了关于max()方法的documentation,但我不明白这两者之间有什么区别

len(max(name_of_the_list))

len(max(name_of_the_list, key=len))

如果我们想获得列表中最长的项目。

2 个答案:

答案 0 :(得分:4)

第一个将比较字符串,并按字母顺序找到最大的字符串,输出其长度(max的默认行为)。

第二个将使用字符串的长度作为max函数的键,并找到具有最大长度的字符串,并输出其长度。这里,len指的是python内置len函数。

所以这两者都不一样。由于您希望获得列表中最长的项目,因此请使用第二项,因为它是正确的。

作为演示,请考虑以下内容

>>> name_of_the_list = ["abcdefgh", "ijkl"]
>>> max(name_of_the_list)
"ijkl"
>>> len(max(name_of_the_list))
4
>>> max(name_of_the_list, key=len)
"abcdefgh"
>>> len(max(name_of_the_list, key=len))
8

答案 1 :(得分:2)

函数max将使用类型定义的函数cmp来检查哪一个是最大的。使用参数key,您可以覆盖此行为,指定需要应用的函数以计算项目的得分,其中max将返回最大。

max(name_of_the_list, key=len)

这将返回列表中最长的项目(len返回最大数字的项目。)

如果name_of_the_list包含字符串,则省略key会导致使用为字符串定义的字符串定义的默认cmp函数。

max函数将返回具有最大键函数的元素,因此如果将调用包装在另一个len(...)中,则获得该元素的长度。为了获得这一点,这意味着您不再需要有关元素的信息,只需要最多的键,因此您可以这样做:

max(len(x) for x in name_of_the_list)

也是使用map的等价物:

max(map(len, name_of_the_list))

这样,你将告诉python计算元素的长度,然后返回这些长度的最大值。