speeding up Python script
Dan Sommers
me at privacy.net
Wed May 18 10:22:38 EDT 2005
On Wed, 18 May 2005 12:56:50 +0100,
"Luis P. Mendes" <luis_lupe2XXX at netvisaoXXX.pt> wrote:
> The reason why I'm using six nested for loops is because I need to find
> the best output using those six variables as input.
> Here's the simplified code:
> for per in range():
> ~ for s in range():
> ~ for t in range():
> for v in range():
> ~ for n in range():
> ~ for l in range():
> var a, \
> var b, \
> ...
> var 15 = function1(arg1, \
> ...
> arg20)
> ~ var a, \
> var d, \
> var a, \
> ...
> var 14 = function2(arg1, \
> ...
> arg25)
> var c, \
> ...
> var 18 = function3(arg1, \
> ...
> arg20)
> ia = var1*var2-numPerdidos*sl
> result.insert(index, [per,s,t,v,n,l,ia])
> index = index + 1
> thanks for the replies
I don't know how large your search-space is, but if the ranges for s, t,
v, n, and/or l don't change, at the very least you can pre-compute those
ranges instead of creating a new list with range every time:
srange = range( <whatever> )
trange = range( <whatever> )
vrange = range( <whatever> )
nrange = range( <whatever> )
lrange = range( <whatever> )
for per in range( <whatever> ):
for s in srange:
for t in trange:
for v = vrange:
for n in nrange:
for l in nrange:
somevar = somefunction( per, s, t, v, n, l )
result.append( [ somevar, per, s, t, v, n, l ] )
(Appending the results is probably quicker than inserting them, but I
don't know for sure.)
But a better-than-an-exhaustive-search algorithm sounds like a good
idea, too.
Regards,
Dan
--
Dan Sommers
<http://www.tombstonezero.net/dan/>
More information about the Python-list
mailing list