我有一个清单L.
L = [[1,2,3],[5,7],[1,3],[77]]
Run Code Online (Sandbox Code Playgroud)
我想返回最长子列表的长度而不需要循环它们,在这种情况下为3因为[1,2,3]是长度3并且它是四个子列表中最长的.我尝试了len(max(L)),但这并不是我想要的.有没有办法做到这一点,或者是我唯一的循环方式?
mgi*_*son 55
max(L,key=len)会给你一个长度最长的对象([1,2,3]在你的例子中) - 要真正获得长度(如果这就是你所关心的),你可以做len(max(L,key=len))一些有点难看 - 我把它分成2行.或者您可以使用ecatamur提供的版本.
所有这些答案都有循环 - 在我的例子中,循环是隐式的,这通常意味着它们将在优化的本机机器代码中执行.如果你仔细想想,如果不看每一个元素,你怎么能知道哪个元素最长?
最后,请注意,这key=function不是特定于的功能max.很多蟒蛇建宏(中max,min,sorted,itertools.groupby,...)用这种特殊关键字参数.绝对值得投入一点时间来了解它是如何工作的以及它通常做什么.
eca*_*mur 15
尝试理解:
max(len(l) for l in L)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23425 次 |
| 最近记录: |