ayuda con un problema de python

Andres Moya Andres.Moya en hispalinux.es
Lun Ago 11 14:15:56 CEST 2003


El lun, 11 de 08 de 2003 a las 13:49, Chema Cortés escribió:

> También te aconsejo que en los bucles recorras la lista elemento a 
> elemento, sin acceder a los elemento a través de variables índices. Esto es:
> 
> for c in codigos:
>    if c==codigo_asig:
>      posic=c
>      break  # ya no hace falta seguir mirando

Ojo con esto, no es correcto. Si haces eso, al salir posic valdrá igual
que codigo_asig, no contendrá el índice, como se pretende.

En python 2.3 (que acaba de salir este mes) han creado una función
"built-in" nueva enumerate() que resuelve esto de forma elegante. Se
puede hacer:

  for (i, codigo) in enumerate(codigos):
    if codigo == codigo_asig:
      posic = i
      break

Si no tienes python 2.3, se puede escribir una función que haga lo mismo
que enumerate(), pero para el caso actual, como es un ejercicio, casi
mejor dejarlo como lo estaba haciendo Sonia. Lo que sí es útil es el
break.


> Para para buscar la posición de un elemento te recomiendo utilizar el 
> método .index():
> 
> posic=codigo.index(codigo_asig)

O también así. En realidad esto es lo mejor.

-- 
Andres Moya <Andres.Moya en hispalinux.es>

Contra la guerra global permanente.
Foro Social Mundial - Otro mundo es posible.

------------ 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