我有一个清单 L
L = [[1,2,3],[5,7],[1,3],[77]]
我想返回最长子列表的长度而不需要遍历它们,在本例中为 3,因为 [1,2,3] 的长度为 3,它是四个子列表中最长的。我试过 len(max(L)) 但这并没有达到我想要的效果。有什么方法可以做到这一点,还是我唯一的方法是循环?
我有一个清单 L
L = [[1,2,3],[5,7],[1,3],[77]]
我想返回最长子列表的长度而不需要遍历它们,在本例中为 3,因为 [1,2,3] 的长度为 3,它是四个子列表中最长的。我试过 len(max(L)) 但这并没有达到我想要的效果。有什么方法可以做到这一点,还是我唯一的方法是循环?
max(L,key=len)
将为您提供长度最长的对象([1,2,3]
在您的示例中)-要实际获得长度(如果这是您所关心的全部),您可以这样做len(max(L,key=len))
有点难看-我将其分成两行。或者您可以使用 ecatamur 提供的版本。
所有这些答案都有循环——在我的例子中,循环是隐式的,这通常意味着它们将在优化的本机机器代码中执行。如果你想一想,你怎么不看每个元素就知道哪个元素最长?
最后,请注意,这key=function
不是特定于max
. 许多 python 内置函数 ( max
, min
, sorted
, itertools.groupby
,...) 使用这个特定的关键字参数。绝对值得花一点时间来了解它是如何工作的以及它通常做什么。
尝试理解:
max(len(l) for l in L)