[英]How can I make an inline for loops in python to sum a list of numbers?
我做了這個 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-in
s:
def mean(a):
return sum(a)/len(a)
除非您使用花哨的技巧,包括:=
運算符和 list comphention,否則您無法使用內聯循環進行求和。(不推薦)
順便說一句,你不應該使用內置名稱作為變量名。它們會使你的代碼更難理解,並且(有時)更慢。
編輯:如果你真的想在一行中循環,這里是如何做到的(需要python3.9+)
def mean(a):
s=0
return [s:=s+i for i in a][-1]/len(a)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.