error en método para recuperar índice en lista

Claudio A. Quezada R. claudio.quezada.r en gmail.com
Vie Sep 28 20:11:58 CEST 2007


Hola,

Tengo el siguiente problema. Tengo una lista creada de acuerdo a una
grilla de datos, algo así: [[1,2,3,4,5],[6,7,8,9,0],[11,22,33,44,55]].

Quiero recuperar los índices: 1) de la primera columna en la que
aparece mi "valor", 2) todos los índices fila que aparece repetido mi
"valor", en esa columna .

La llamo así (enviándole la lista de valores, y mi valor "gremio" a buscar:

def recorrerGremios(valores, gremio):
    indice = []
    for columna in valores:
        for fila in columna:
            if fila == gremio:
                indice.append(columna.index(fila))
            continue #optativo

        if len(indice)>0:
            return [valores.index(columna),indice]

    return False

El problema es que no me retorna todos los indices "fila", sino, me
retorna el indice a la primera fila, repetido tantas veces como
aparezca mi gremio en la columna, algo asi:

[3,[0,0,0,0,0,0]] #llamada con 1 gremio
[0,[0]] #llamada con otro gremio
[2,[6,6] #llamada con otro gremio más.

También probé agregándole el continue y poniéndolo dentro del if
gremio==fila, y dentro del 2do for, incluso con un break (nada que
ver), y con un pass.

Debe de haber algún detalle que se me escapa... Agradecería sus aportes.

Saludos,


-- 
Claudio Quezada Romegialli
Ingeniero Ambiental
(02)7321665 - 81466049




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