可能重复:
Python’s most efficient way to choose longest string in list?Python:最长的子列表的长度?
我有一个列表L
L = [[1,2,3],[5,7],[1,3],[77]]
我想回到最长的子表的长度,而无需遍历它们,这种情况3是因为[1,2,3]是长度3并且是四个子列表中最长的。我试过len(max(L)),但是这不会做我想要的。任何方式来做到这一点,或者是一个循环我唯一的方式?
可能重复:
Python’s most efficient way to choose longest string in list?Python:最长的子列表的长度?
我有一个列表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))
这是一个有点难看 - 我把它分解成2行。或者你可以使用ecatamur提供的版本。
所有这些答案都有循环 - 在我的情况下,循环是隐含这通常意味着它们将在优化的本地机器代码中执行。如果你仔细想想,你怎么能知道哪一个元素最长而不看每一个?
最后,请注意key=function
不是一个特点,就是具体到max
。很多python内置函数(max
,min
,sorted
, itertools.groupby
,...)都使用这个特定的关键字参数。绝对值得投入一点时间来了解它是如何工作的以及它通常会做什么。
http://stackoverflow.com/q/873327/1180720 – gefei