def calc_average(scores)
x = scores[1:]
return (sum(x)/float(len(x)))
這是一些代碼,應該找到一個數字列表的平均值,但不算最低。我不知道如何找到列表中的最低數字,將其從中刪除,然後找到其平均值。誰能幫忙?謝謝! (最低的數字並不總是列表中的第一個數字,這是我犯的......)我如何讓我的代碼刪除最低的整數?
def calc_average(scores)
x = scores[1:]
return (sum(x)/float(len(x)))
這是一些代碼,應該找到一個數字列表的平均值,但不算最低。我不知道如何找到列表中的最低數字,將其從中刪除,然後找到其平均值。誰能幫忙?謝謝! (最低的數字並不總是列表中的第一個數字,這是我犯的......)我如何讓我的代碼刪除最低的整數?
您可以使用min()函數查找列表的最小值,然後您可以刪除list.remove()函數的值。
檢查了這一點參考https://docs.python.org/2/library/functions.html#min或https://docs.python.org/3.6/library/functions.html#min
你可以使用
return float((sum(scores) - min(scores)))/(len(scores) - 1)
那找到所有得分的總和,然後刪除最小得分,之後通過分數的數量除以之前去除。
請注意,這裏沒有錯誤檢查,所以這對於長度爲零或一列的列表將無法正常工作。 float()
用於確保Python 2.x中的浮點除法。這使用了Python函數的全部速度,但它確實遍歷了兩次分數。手動編碼的函數只能循環一次,但在執行多個命令時會再次變慢。
我會排序列表然後romove第一個元素。
a = [ 3,2,6,3,8,7,2,1]
a.sort()
a = a[1:]
print a
print float(sum(a))/len(a)
這樣做的好處是,即使它只是去除單個最低值的更多工作,但它是可銷售的。假設您想要刪除最低的2個或3個值,一旦列表排序後,這將很容易。
謝謝,這個爲我工作! :) – FireFume
您不必從字面上刪除該項目;你可以從計算中刪除它。
def calc_average(scores)
return (sum(scores) - min(scores))/float(len(x) - 1)
DEF calc_average(得分): Y =分鐘(得分) list.remove(Y) X =分數[1:] 回報(總和(X)/浮子(LEN(X))) – FireFume
這會工作嗎?我不斷收到錯誤:> – FireFume
對於list.remove,您需要輸入列表變量的實際名稱。所以如果你的列表被命名爲x,你會做x.remove(#),其中#是你想要移除的整數(我假設)。 –