[Python-es] Buscar índices de un array (que cumple condición) de forma eficiente

Arnau Sanchez pyarnau en gmail.com
Jue Mar 4 16:14:32 CET 2010


On 04/03/10 14:02, Pablo Angulo wrote:

> indices = []
> ultimo = 0
> for v in subconjunto:
>      ultimo += conjunto.index(v,ultimo)
>      indices.append(ultimo)

Creo que el += sobra, list.index() devuelve el índice absoluto:

   ultimo = conjunto.index(v, ultimo)

Y si no me equivoco el índice podría ser ultimo+1. Con tu propuesta, y usando 
generadores queda realmente simple:

   ultimo = -1
   for v in subconjunto:
       ultimo = conjunto.index(v, ultimo+1)
       yield ultimo



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