On Feb 25, 2010, at 13:10, Remco Gerlich wrote:

> Een array met tuples bijv:
>  
> table = [
>     (15000, 16500, 0.25),
>     (16500, 23000, 0.3),
> ] 

als de bedragen in de lijst aaneengesloten zijn, kun je volstaan met een 
2-tuple:
lijst = (
(15000, 0.21),
(16500, 0.25),
(23000, 0.3),
...
)

vervolgens kun je binair zoeken naar het bedrag in de eerste kolom.

print zoek( 15500, lijst )


waarbij:

def zoek(bedrag, lijst ):
        if bedrag <= lijst[0][0]:
                return lijst[0][1]
        elif bedrag >= lijst[-1][0]:
                return lijst[-1][1]
        else:
                l = 0
                h = len(lijst)-1
                while (h-l) > 1:
                        p = l + (h-l) / 2
                        if r >= lijst[p][0]:
                                l = p
                        else:
                                h = p
                return lijst[l][1]



je kunt dezelfde functie gebruiken om bij een percentage een passend bedrag te 
zoeken.

F

_______________________________________________
Python-nl mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-nl

Antwoord per e-mail aan