Fwd: ayuda!!

Chema Cortés ch3m4 en ch3m4.org
Mie Ago 20 13:58:44 CEST 2003


Sonia escribió:
> sobre el ejercicio de los tramos, al cambiar la condicion de q ini>fin
> (recorrer la lista al reves) me da como error de compilacion q la lista esta
> fuera del rango en esta linea:
> 
>   while ini>fin:
>       coste_tramo.append(coste[fin]) #costes   #ESTA!!!!
>       lista_aux.append(tramo[fin]) #tramos
>       fin=fin-1
> 
> 
> ves algo raro aqui?

Pues sí que hay algo raro :-P

Si vas restando a 'fin' nunca llegará a valer 'ini'.
Restando, restando, llegará a valer 0, y luego sigue con índices 
negativos hasta que se sale de rango.

Te sugiero que no uses las variables 'ini' ó 'fin' como índices de bucles:

for i in range(ini,fin+1):
    ...


También te iría mejor si juntas los dos bloques del 'if' en uno sólo. Al 
fin de cuentas ambos códigos son iguales, tan sólo que hay que cambiar 
'ini' por 'fin':

if ini>fin:
     ini,fin=fin,ini


Y si pudieras usar rebanadas de listas todavía te iría mejor ;-)

>>L_aux=L[i:j]


PD: por cierto, que sólo tienes que tener una lista llamada 
'coste_tramo', con lo que la función a llamar sería: 
'recorrer(coste_tramo,ini,fin)' . Revisa el código porque no necesitas 
la lista 'tramo'. Sobre todo revisa mejor el tema de no contabilizar el 
tramo con el coste mínimo. ¿Seguro que no puedes usar "rebanadas"? Se 
haría en dos patadas.


------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es