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

Pablo Angulo pablo.angulo en uam.es
Jue Mar 4 13:46:55 CET 2010


Te escribo a tí directamente porque la lista parece que no me acepta!!
Si los elementos de  subconjunto están ordenados dentro de conjunto, la
búsqueda es O(n):

--------

si sabes que los elementos del subconjunto están ordenados dentro del
conjunto, no necesitas buscar en toda la lista cada vez, sino sólo desde
la última búsqueda

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





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