最长子列表的长度?

2024-05-15 19:19:11 发布

您现在位置:Python中文网/ 问答频道 /正文

Possible Duplicate:
Python’s most efficient way to choose longest string in list?

我有一张单子

L = [[1,2,3],[5,7],[1,3],[77]]

我想返回最长子列表的长度,而不需要遍历它们,在本例中是3,因为[1,2,3]是长度3,它是四个子列表中最长的。我试过len(max(L))但这不是我想要的。有什么办法吗?还是我唯一的办法就是循环?


Tags: toinmost列表stringlongestwaylist
2条回答

尝试理解:

max(len(l) for l in L)

max(L,key=len)将为您提供长度最长的对象(在您的示例中为[1,2,3])--要实际获得长度(如果这是您所关心的全部),您可以执行len(max(L,key=len))这有点难看--我将它分成两行。或者您可以使用ecatamur提供的版本。

所有这些答案都有循环——在我的例子中,循环是隐式的,这通常意味着它们将在优化的本机代码中执行。如果你仔细想想,如果不看每一个元素,你怎么知道哪个元素最长?


最后,注意key=function不是max特有的特性。很多python内置代码(maxminsorteditertools.groupby,…)都使用这个特定的关键字参数。花点时间去了解它是如何工作的,以及它通常做什么,绝对是值得的。

相关问题 更多 >