如何在python中进行内联for循环来总结数字列表?
我做了这个 for 循环,我只想把它放在一行中。
def mean(list):
sum = 0
for i in list:
sum += i
return sum // len(list)
我试过这个,但它不起作用,这是一个语法错误。
def mean(list):
sum = 0
sum = [sum += i for i in list]
return sum // len(list)
回答
更快(更好)的方法是使用built-ins:
def mean(a):
return sum(a)/len(a)
你不能使用内联循环求和,除非你使用包括:=运算符和列表理解在内的奇特技巧。(不推荐)
顺便说一句,你应该永远不会使用内建的名字作为变量names.They会使你的代码更难理解,和(有时)慢。
编辑:如果你真的想要在一行中循环,这里是如何做到的(需要 python3.9+)
def mean(a):
s=0
return [s:=s+i for i in a][-1]/len(a)