Reputation: 33
I did this for loop and I wanted to put it in only one line.
def mean(list):
sum = 0
for i in list:
sum += i
return sum // len(list)
I tried this, but it doesn't work, it is a syntax error.
def mean(list):
sum = 0
sum = [sum += i for i in list]
return sum // len(list)
Upvotes: 2
Views: 1524
Reputation: 983
A faster (and better) way will be to use built-in
s:
def mean(a):
return sum(a)/len(a)
you cannot make a sum using a inline loop unless you use fancy hacks including the :=
operator and list comphention.(Not recommended)
BTW,you should never use builtin names as variable names.They will make your code harder to understand,and (sometimes) slower.
Edit: If you really want the loop in one line,here's how to do it (python3.9+ needed)
def mean(a):
s=0
return [s:=s+i for i in a][-1]/len(a)
Upvotes: 6