Approximate comparison of two lists of floats

Christian Doll dollebolle at gmail.com
Thu Jul 28 09:11:53 CEST 2011


Hello,

i have e little performance problem with my code...

i have to compare many lists of very much floats. at moment i have
nested for-loops

for a in range( len(lists) ):
    for b in range( a+1 , len(lists) ):
        for valuea in lists[a]:
            equal=False
            for valueb in lists[b]:
                if inTolerance( valuea , valueb , 1.0): # inTolerance
is an own function, which checks if the difference of valuea and
valueb is not more then 1.0%
                    equal=True
                    break
    if equal:
        print a , "and" , b , "are equal"

i found a version with set which is faster, but i cannot assign an
tolerance (%)
for a in range( len(lists) ):
    for b in range( a+1 , len(lists) ):
        if len( lists[a] ) ==
len( set( lists[a] ).intersection( set( lists[b] ) ) ):
            print a , "and" , b , "are equal"

have you an idea how i can change my code, that i can compare many
lists of floats with a tolerance in percentage very fast?

(sorry for my bad englisch ;-) )

thanks
christian



More information about the Python-list mailing list