面试题答案
一键面试def count_inner_elements(lst):
count = 0
for sub_lst in lst:
if isinstance(sub_lst, list):
count += count_inner_elements(sub_lst)
else:
count += 1
return count
在这个函数中,递归地遍历列表。当遇到一个子列表时,递归调用函数来处理该子列表,从而确保所有层次的子列表都被处理。通过对每层列表长度的计算,可以知道需要处理的元素数量,避免不必要的重复计算,例如在遍历外层列表时,通过len(lst)
可以明确知道要处理的子列表数量,对于每个子列表同样可以用len(sub_lst)
提前知晓内部元素数量情况,以此优化遍历过程。如果直接遍历,可能会在一些不必要的判断上浪费时间,通过提前计算长度,可以有针对性地进行处理。