Python中为什么这个接受一个 list 并求积的函数返回 None?
如图
Python中为什么这个接受一个 list 并求积的函数返回 None?
9 回复
return 呢?
我遇到过这个问题,通常是因为在函数里直接修改了列表或者忘了写 return。
最常见的情况是这样的:
def multiply_list(lst):
result = 1
for num in lst:
result *= num
# 这里没有 return,所以默认返回 None
调用的时候:
my_list = [1, 2, 3, 4]
print(multiply_list(my_list)) # 输出 None
修复方法:在函数末尾加上 return result。
def multiply_list(lst):
result = 1
for num in lst:
result *= num
return result # 加上这一行
还有一种可能是你用了 list.append() 或类似原地修改的方法,然后直接打印列表操作的结果,比如:
def wrong_multiply(lst):
lst.append(10) # 原地修改,返回 None
# 没有 return
这样调用也会得到 None。
总结:检查函数最后有没有 return。
看标题我就猜没 return 23333 毕竟我也碰到过
prod = lambda L: reduce (lambda x,y : x*y , L)
唔………
感觉又是一行无法维护的 lambda 地狱………
def prod(L):
return reduce(lambda x,y : x*y, L)
这样好点
不太明白, return 我不是已经加了嘛
已经加了 return 了
<br>from functools import reduce<br><br>def prod(L):<br> def qiuji(x, y):<br> return x * y<br> return reduce(qiuji, L)<br>print(prod([3, 5, 7, 8]))<br>
你这个没有 return 啊,prod 函数得有一个返回值

