2024-05-15 19:19:11 发布
网友
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))但这不是我想要的。有什么办法吗?还是我唯一的办法就是循环?
尝试理解:
max(len(l) for l in L)
max(L,key=len)将为您提供长度最长的对象(在您的示例中为[1,2,3])--要实际获得长度(如果这是您所关心的全部),您可以执行len(max(L,key=len))这有点难看--我将它分成两行。或者您可以使用ecatamur提供的版本。
max(L,key=len)
[1,2,3]
len(max(L,key=len))
所有这些答案都有循环——在我的例子中,循环是隐式的,这通常意味着它们将在优化的本机代码中执行。如果你仔细想想,如果不看每一个元素,你怎么知道哪个元素最长?
最后,注意key=function不是max特有的特性。很多python内置代码(max,min,sorted,itertools.groupby,…)都使用这个特定的关键字参数。花点时间去了解它是如何工作的,以及它通常做什么,绝对是值得的。
key=function
max
min
sorted
itertools.groupby
尝试理解:
max(L,key=len)
将为您提供长度最长的对象(在您的示例中为[1,2,3]
)--要实际获得长度(如果这是您所关心的全部),您可以执行len(max(L,key=len))
这有点难看--我将它分成两行。或者您可以使用ecatamur提供的版本。所有这些答案都有循环——在我的例子中,循环是隐式的,这通常意味着它们将在优化的本机代码中执行。如果你仔细想想,如果不看每一个元素,你怎么知道哪个元素最长?
最后,注意
key=function
不是max
特有的特性。很多python内置代码(max
,min
,sorted
,itertools.groupby
,…)都使用这个特定的关键字参数。花点时间去了解它是如何工作的,以及它通常做什么,绝对是值得的。相关问题 更多 >
编程相关推荐