在本教程中,我們將討論如何用 Python 計算列表的平均值。
列表的平均值定義為列表中存在的元素之和除以列表中存在的元素數量。
在這裡,我們將使用三種不同的方法來使用 Python 計算列表中元素的平均值。
- 使用求和()
- 使用減少()
- 使用平均值()
所以,讓我們開始吧…
使用總和()
在第一種方法中,我們使用 sum()和 len()來計算平均值。
下面的程序說明了同樣的情況-
# Python program to get average of a list
def calc_average(lst):
return sum(lst) / len(lst)
lst = [24, 19, 35, 46, 75, 29, 30, 18]
average = calc_average(lst)
# Printing the average value of the list
print("The average of the list is ", round(average, 3))
輸出:
The average of the list is 34.5
解釋-
是時候看看我們在上面的程序中做了什麼-
- 在第一步中,我們創建了一個函數,該函數以列表為參數,然後使用 sum() 和 len()返回平均值。我們知道 sum() 用來計算元素的和,len()告訴我們列表的長度。
- 在這之後,我們已經初始化了列表,我們想要計算它的平均值。
- 在下一步中,我們將這個列表作為參數傳遞給我們的函數。
- 最後,我們打印結果值。
在下一期節目中,我們將看到 reduce() 如何幫助我們做同樣的事情。
使用 reduce()
下面給出的程序展示了如何做到這一點-
# Python program to obtain the average of a list
# Using reduce() and lambda
from functools import reduce
def calc_average(lst):
return reduce(lambda a, b: a + b, lst) / len(lst)
#initializing the list
lst = [24, 19, 35, 46, 75, 29, 30, 18]
average = calc_average(lst)
# Printing average of the list
print("The Average of the list is ", round(average, 2))
輸出:
The average of the list is 34.5
解釋
讓我們了解我們在這裡做了什麼-
- 在第一步中,我們從 functools 導入了 reduce,這樣我們就可以在程序中使用它來計算元素的平均值。
- 現在,我們已經創建了一個函數 calc_average,它以一個列表作為參數,並在 reduce 內部使用 lambda(python 中編寫函數的一種精確方式)來計算平均值。
- 在此之後,我們已經初始化了我們想要計算的平均值。
- 在下一步中,我們將這個列表作為參數傳遞給我們的函數。
- 最後,我們打印結果值。
在上一個程序中,我們將學習如何使用 mean() 來計算列表的平均值
使用平均值()
下面的程序展示了如何做到這一點
# Python program to obtain the average of a list
# Using mean()
from statistics import mean
def calc_average(lst):
return mean(lst)
lst = [24, 19, 35, 46, 75, 29, 30, 18]
average = calc_average(lst)
# Printing the average of the list
print("The average of the list is ", round(average, 2))
輸出:
The average of the list is 34.5
解釋-
是時候看看我們在上面的程序中做了什麼-
- 第一步,我們從統計數據中導入平均值,這樣我們就可以在程序中使用它來計算元素的平均值。
- 現在,我們已經創建了一個函數 calc_average,它以列表為參數,使用 mean() 計算平均值。
- 在此之後,我們已經初始化了我們想要計算的平均值。
- 在下一步中,我們將這個列表作為參數傳遞給我們的函數。
- 最後,我們打印結果值。
結論
在本教程中,我們學習了使用 Python 計算列表中元素平均值的不同方法。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/286861.html