【发布时间】:2021-10-26 07:11:59
【问题描述】:
我想创建一个函数,它将列表作为输入并返回列表元素之间的整数、实数和复数之和。 作为列表元素,数据类型计算和时排除整数、实数和复数以外的对象。
所以我就这样写了代码
def number_sum(lst):
total = 0
for e in lst:
if type(e) == int or type(e) == float or type(e) == complex:
total += e
return total
x1 = [1, 3, 5, 7, 9] # 25
x2 = ["abc", [3, 5], 3.5, 2+3j, 4.5, 10] # 20 + 3j
x3 = [] # 0
print(number_sum(x1))
print(number_sum(x2))
print(number_sum(x3))
但我希望我可以在输入中获取 x1、x2、x3 列表。我该如何解决?
【问题讨论】:
-
对不起,这是我的错误! x2 的结果是 #20 + 3j。
-
x2 中的任何嵌套列表也会出现问题,递归调用 number_sum 的 elif 语句可以解决此问题
-
结果是 20 + 3j 还是 28 + 3j?
-
20 + 3j 是结果!
标签: python list function input sum