Tengo una secuencia de cadenas - 0000001, 0000002, 0000003....
hasta 2 millones. Ellos no son contiguos. Lo que significa que hay lagunas. Digamos después de 0000003 que la próxima cadena podría ser 0000006. Necesito averiguar todos estos huecos. En el caso anterior (0000004, 0000005).vacíos en una secuencia de cadenas
Esto es lo que he hecho hasta ahora -
gaps = list()
total = len(curr_ids)
for i in range(total):
tmp_id = '%s' %(str(i).zfill(7))
if tmp_id in curr_ids:
continue
else:
gaps.append(tmp_id)
return gaps
Pero como es de suponer, esto es lento ya que estoy usando list
. Si uso un dict
, a curr_ids rellenar previamente que va a ser más rápido. ¿Pero cuál es la complejidad de poblar una tabla hash? ¿Cuál es la forma más rápida de hacer esto?
orden de la lista de entrada? – khachik
Aunque no son contiguos, ¿están en orden? –
@khachik, @paul sí, la entrada está ordenada ... En cualquier caso, puedo ordenarlo si mejora el rendimiento general ... –