有没有更有效的方法来比较python中的If语句中的多个浮点值?

时间:2016-06-27 13:43:20

标签: python python-3.x

我目前只使用这样的东西:

def match9(a,b,c,d,e,f,g,h,i):
if a==b and b==c and c==d and d==e and e==f and f==g and g==h and h==i:
    return 1
else:
    return 0

结合使用
temp = match9(d1s1,d1s2,d1s3,d1s4,d1s5,d1s6,d1s7,d1s8,d1s9)
if temp == 1:
    codeToBeActivated()

1 个答案:

答案 0 :(得分:4)

您可以使用快捷方式

if a == b == c == d == e == f == g == h == i:

或使用set来消除重复项,然后检查长度:

if len({a,b,c,d,e,f,g,h,i}) == 1:

话虽如此,使用==来比较float可能会因浮点精度而导致错误。您可以尝试检查元素之间的差异。以下是Python> = 3.4的示例:

from statistics import stdev
if stdev([a, b, c, d, e, f, g, h, i]) < 1e-6:  # Or some other threshold