使用python查找列表中的最大(最大)文本项

时间:2014-03-06 08:45:51

标签: python text max

为什么max函数在以下两个列表中的运行方式不同:

>>> list1=['the school','boy', 'the wise old man']
>>> max(list1)
'the wise old man'

list2=['made', 'with', 'then', 'happy home', 'came', 'this', 'them', 'from', 'have', 'into']
>>> max(list2)
'with'

显然在list2中,'happy home'应该是'max',因为它比列表中的其他文本有更多的文本。

任何想法为什么? 感谢。

2 个答案:

答案 0 :(得分:4)

max()按字典顺序比较字符串;你找到了最后排序的元素。因此,'the wise old man'按字母顺序排在the school之后。

要获取最长的字符串,请将函数传递给key的{​​{1}}参数:

max()

一般来说,如果没有max(list2, key=len) 函数,key会找到输入序列中所有其他值max()始终为真的值。

value > othervalue参数(如果提供)为key提供了一个不同的值来进行比较,以确定序列中的哪个项目是最大的。

答案 1 :(得分:1)

我认为您想要具有最大尺寸的列表项。你应该这样使用

max(list2, key=len)

结果是

'happy home'

键改变了max函数的行为,另一方面它找到了具有最大长度的max项。