实现思路
- 使用递归方法来遍历复杂列表结构。
- 对于列表中的每个元素,判断其类型:
- 如果是列表或元组,递归调用函数来处理这个子列表或子元组。
- 如果是字典,递归处理字典的值。
- 如果既不是列表、元组也不是字典,说明是叶子节点,数量加1。
完整代码
def count_leaf_nodes(lst):
count = 0
for item in lst:
if isinstance(item, (list, tuple)):
count += count_leaf_nodes(item)
elif isinstance(item, dict):
for value in item.values():
if isinstance(value, (list, tuple)):
count += count_leaf_nodes(value)
else:
count += 1
else:
count += 1
return count
complex_list = [1, [2, 3, [4, 5]], (6, 7), [8, {'sub_key': [9, 10]}]]
print(count_leaf_nodes(complex_list))