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