簡體   English   中英

如何在 python 中創建內聯循環以對數字列表求和?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM