编写python代码:【问题描述】输入一个嵌套列表,求其嵌套的层数。例如:[1,2,3,4,5]的嵌套层数为1,[1,[2,3], [4,5]]的嵌套层数为2,[1,[[2,3],4],5]的嵌套层数为3......思想:采用递归的方式,如果是列表,其 嵌套层数等于列表每个元素的嵌套层数的最大值+1;如果不是列表,其嵌套层数为0. 可用isinst ance函数判断数据类型,isinstance(变量名,类型名),例如: a=[1,2], isinstance(a, list)返回T rue。注意:测试数
时间: 2024-02-06 20:09:10 浏览: 58
据应该保证是一个合法的嵌套列表,即每个元素要么是一个数值,要么是一个嵌套列表。
以下是代码实现:
```python
def nested_depth(lst):
"""
求嵌套列表的层数
:param lst: 嵌套列表
:return: 层数
"""
if not isinstance(lst, list): # 不是列表,返回0
return 0
else:
depth = 0 # 初始化层数为0
for item in lst:
item_depth = nested_depth(item) # 递归求每个元素的层数
depth = max(depth, item_depth) # 取每个元素的层数的最大值
return depth + 1 # 当前列表的层数等于最大元素层数再加1
```
测试代码:
```python
lst1 = [1, 2, 3, 4, 5]
lst2 = [1, [2, 3], [4, 5]]
lst3 = [1, [[2, 3], 4], 5]
lst4 = [1, [2, [3, [4, [5]]]]]
print(nested_depth(lst1)) # 输出1
print(nested_depth(lst2)) # 输出2
print(nested_depth(lst3)) # 输出3
print(nested_depth(lst4)) # 输出5
```
输出结果:
```
1
2
3
5
```
阅读全文