def sum_list(lst):
total = 0
for item in lst:
if isinstance(item, int):
total += item
elif isinstance(item, list):
total += sum_list(item)
return total
关于返回值处理的解释
- 累加整数:在循环遍历列表
lst
时,使用isinstance
函数检查每个元素item
。如果item
是整数类型,直接将其加到total
变量中。这是直接处理列表中整数元素的部分。
- 递归处理子列表:如果
item
是列表类型,说明遇到了嵌套列表,此时调用函数自身sum_list(item)
,递归地处理这个子列表,并将递归返回的总和加到total
中。这确保了所有层次的嵌套列表中的整数都能被正确累加。
- 返回总和:循环结束后,
total
变量中已经累计了列表及其所有嵌套列表中整数的总和,最后返回total
。
确保在不同输入场景下正确返回结果的方式
- 类型检查:使用
isinstance
函数确保只对整数和列表类型进行处理,避免在遇到其他类型(如字符串)时出现错误。对于字符串等非整数非列表类型,会跳过不做处理,从而保证函数在包含多种类型元素的列表输入时能正常运行。
- 递归处理:通过递归调用
sum_list
函数,能够处理任意深度的嵌套列表。无论嵌套有多深,每次遇到列表时都会递归进入处理,直到遍历完所有嵌套层次并累加所有整数。这样可以适应各种复杂的嵌套列表结构输入场景。