A = 0
B = 10
C = 20
N = [(A, B, C)]
Avarage = (A + B + C)/sum(1 for i in N if i != 0)
Avarage = 30?Python - 使變量變量無0
Need Avarage = 15.
有什麼想法嗎?
A = 0
B = 10
C = 20
N = [(A, B, C)]
Avarage = (A + B + C)/sum(1 for i in N if i != 0)
Avarage = 30?Python - 使變量變量無0
Need Avarage = 15.
有什麼想法嗎?
你需要從你的列表N
a = 0
b = 10
c = 20
n = [a, b, c]
list_avg = sum(n)/sum(1 for i in n if i != 0)
輸出刪除(
和)
:
>>> list_avg
15
正如depperm所述,N是一個元組的列表,所以你只有一個元素(它不是0,因爲它是一個元組而不是一個int)。否則,你可以使用numpy的
import numpy as np
average = np.mean([A, B, C])
N中包含列表元組。所以sum(1 for i in N if i != 0)
返回1因爲只有1名單N.元素(一個元組)
嘗試:
A = 0
B = 10
C = 20
N = [(A, B, C)]
Avarage = (A + B + C)/sum(1 for i in N[0] if i != 0)
print Avarage
OR:
A = 0
B = 10
C = 20
N = [A, B, C]
Avarage = (A + B + C)/sum(1 for i in N if i != 0)
print Avarage
是的,現在明白!謝謝 – leandurus
製作值的一個新的列表沒有零,則平均是:
non_zero = [v for v in (A, B, C) if v != 0]
avg = sum(non_zero)/len(non_zero)
'N'是含有1元組所以'因爲我在N'列表...我會'(0 ,10,20)'和!= 0 ....讓你30/1 – depperm