我必须在列表列表中找到最长的列表。
例如:longest([1,2,3])
返回3longest([[[1,2,3]]])
也返回3(内部列表为3)longest([[], [3,[4,5],[2,3,4,5,3,3], [7], 5, [1,2,3], [3,4]], [1,2,3,4,5]])
返回7(列表[3,[4,5],[2,3,4,5,3,3], [7], 5, [1,2,3], [3,4]]
包含7个元素)
现在我有了这段代码,但是前两个示例并没有解决这个问题。
def longest(list1):
longest_list = max(len(elem) for elem in list1)
return longest_list
也许递归会有所帮助吗? 最佳答案
这是任何深度列表的递归解决方案:
def longest(l):
if not isinstance(l, list):
return 0
return max(
[len(l)]
+ [len(subl) for subl in l if isinstance(subl, list)]
+ [longest(subl) for subl in l]
)
关于python - 在不规则列表中查找最长列表的长度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30902558/