2017-10-09 42 views
-3

例如:如果我有一个二维数组阵列可以平铺多少次?

arr = [[1,2], [4,5], [7,5], 8] 

输出应为1,因为它可以被压平一次。 如果我有一维数组

arr = [1,3,4] 

输出应该是0,因为它不能被压平。

我应该使用什么函数?

+0

一个你自己写......如果列表中有不同的嵌套级别是什么,例如'[1,[2,[3,4],5],6]'。 –

+0

什么是你的输入数组的最大深度? – RomanPerekhrest

+0

@WillemVanOnsem如果是这样的话,请遵循最高嵌套层次 –

回答

1

使用递归:

def depth(arr): 
    if isinstance(arr, list): 
     return 1 + max(depth(elem) for elem in arr) 
    else: 
     return 0 
+0

简单列表的深度应为'0',此外请不要让某人做作业。 –

+7

可能是一个好主意来引用你的[源](https://stackoverflow.com/a/6039153/7954504)@PacoH –

+0

我实际上是自己写的,但我可以看到你如何得出这个结论。 –