可能重复:
Python’s most efficient way to choose longest string in list?
我有一个清单L
L = [[1,2,3],[5,7],[1,3],[77]]
我想返回最长子列表的长度而不需要循环它们,在这种情况下为3因为[1,2,3]是长度3并且它是四个子列表中最长的子列表。我尝试了len(max(L)),但这并不是我想要的。有什么方法可以做到这一点,或者是我唯一的循环方式?
答案 0 :(得分:52)
max(L,key=len)
将为您提供长度最长的对象(示例中为[1,2,3]
) - 要实际获取长度(如果您只关心它),您可以执行{{1}这有点难看 - 我把它分成2行。或者您可以使用ecatamur提供的版本。
所有这些答案都有循环 - 在我的例子中,循环是隐式,这通常意味着它们将在优化的本机机器代码中执行。如果你考虑一下,你怎么能知道哪个元素最长而不看每个元素?
最后,请注意len(max(L,key=len))
不是key=function
特有的功能。许多python内置函数(max
,max
,min
,sorted
,...)使用此特定关键字参数。绝对值得投入一点时间来了解它是如何工作的以及它通常做什么。
答案 1 :(得分:13)
尝试理解:
max(len(l) for l in L)