我必须在列表列表中找到最长的列表。
例如: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/

10-12 14:52
查看更多