[python-nl] Newbie vraag werken met tabeldata

Achiel van der Mandele leihca at gmail.com
Thu Feb 25 13:01:33 CET 2010


> Date: Thu, 25 Feb 2010 11:16:09 +0100
> From: GewoonAnthony <gewoonanthony at gmail.com>
> To: python-nl at python.org
> Subject: [python-nl] Newbie vraag werken met tabeldata
> Message-ID:
>        <84ba84221002250216t7d156a1el34f9a8ea7feb950b at mail.gmail.com>
> Content-Type: text/plain; charset=ISO-8859-1
>
> Hallo,
>
> Ik ben een newbie in Python (en voor het eerst programmeren) en zit
> met de volgende (simpele) uitdaging, maar ik zie het licht even niet.
> Wie kan mij helpen?
>
> Ik wil graag tabeldata gebruiken die alsvolgt is opgebouwd:
>
> Bedrag                          percentage
> 15000     -   16500          25%
> 16500     -    23000         30%
>
> etc
>
> Uiteindelijk kan deze tabel vrij lang worden.
>
> Ik wil graag bij een (ingevoerd) bedrag het bijbehorende percentage
> ophalen. Omdat deze berekening heel veel voorkomt wil ik de tabel in
> een variabel gebruiken (die ik bv bij het opstarten uit de database
> lees, maar dit valt even buiten de scope van mijn vraag).
>
> Concreet:
> - hoe verwerk ik deze tabel in een variabel (een nested aray?) (en hoe
> ziet deze code eruit (gaat mij even om het principe)
> - en hoe zoek ik het meest efficient bij het bijbehorende bedrag het
> percentage op. Bv doorlopen met een 'for loop'
> - is het efficient om veel gebruikte tabellen inderdaag in het
> geheugen te laden? En wat is de maximale omvang qua efficiency.
>
>

Hey Anthony,

twee vragen hierbij:
1-waarom wil je het zo graag in een database hebben? Ook al is het een
"dure" berekening, vaak is het ophalen uit een db alsnog duurder.
Probeer voor de grap eens wat benchmarks, bijna altijd is het sneller
om het "live" te berekenen.
2-Over het algemeen is het raar om een array in een kolom te zetten.
Ik denk dat je eerder naar een database structuur wil gaan in de vorm
van:
Minimum bedrag | Maximum bedrag | Percentage
16500                 | 20000                | 30%

etc. Dan kun je veel gemakkelijker een sql query schrijven in de vorm
van "SELECT percentage from mytable where minimum_bedrag <
'mijnwaarde' and maximum_bedrag > 'mjinwaarde';
De grap hierbij is natuurlijk dat SQL per definitie al goed is in het
"itereren over rijen", oftewel: je zou zelden een for-loop moeten
schrijven om dingen te vergelijken.

hoop dat dat helpt :)
groeten,
Achiel


More information about the Python-nl mailing list