def process_list(lst):
if not lst:
return None
all_numbers = True
result = 0
non_numbers = []
for item in lst:
if not isinstance(item, (int, float)):
all_numbers = False
non_numbers.append(item)
else:
result += item
if all_numbers:
return result
else:
return non_numbers
返回值类型判断逻辑
- 列表为空:如果传入的列表
lst
为空,根据题目要求直接返回None
,类型为NoneType
。
- 所有元素为数字类型:遍历列表
lst
,如果所有元素都是int
或float
类型,将所有数字相加并返回这个总和,返回值类型为int
或float
(取决于列表中的元素类型,如果列表中有float
类型元素,总和就是float
类型;否则为int
类型)。在遍历过程中,使用isinstance(item, (int, float))
判断每个元素是否为数字类型。
- 存在非数字元素:如果在遍历过程中发现有非数字类型的元素,将所有非数字元素收集到一个新列表中并返回,返回值类型为
list
。