Jo, que bonito cuando alguien empieza con ilusión ... C++ no me parece difícil ... jejeje ... de verdad que es bonito :-)
@abulafia Al final no he sido capaz de hacer lo que pretendía ... no he encontrado una estructura que me dejara listar facilmente bloques de elementos con una misma key, con acceso secuencial y sin complicar demasiado el acceso individual por id :-(
@MauricioContreras Jejeje ... ya queda menos para La Singularidad ... ¡¡ Temblad míseros humanos !! xDD
@abulafia El cachocódigo ese será una cola de mensajes que esperan respuesta. Tengo que poder sacar mensajes basándome un su id. Y cada X segundos, tengo que revisar la cola para notificar que mensajes no han obtenido respuesta. Y no quiero tener que recorrer toda la cola buscando que mensajes están sin responder. Eso me parece una guarrería. Lo suyo es ordenarlos por timeout, y recorrer solo hasta el momento actual.
@Trauma Entiendo, quieres una estructura que permita ordenación, que se pueda recorrer secuencialmente, y también a través de un id. Hmm... supongo que un diccionario ordenado sería lo suyo, sí... el problema es que un diccionario python no puede "reordenarse". Sí que mantiene el orden de inserción, pero no puedes insertar uno "por el medio"
@trauma Me pregunto si no será suficiente tener un diccionario "normal" para poder acceder a los elementos por id, pero a la hora de recorrerlo hacerlo ordenadamente, con algo como for id, pending_task in sorted(self.diccionario.items(), key=lambda par: par[1][0]):
siendo la lambda una que recibe un par (id, data) y retorna data[0] (el timeout, vamos)
puede que sea ineficiente ordenar el diccionario cada segundo... pero no sé si merece la pena la complicación de mantener un diccionario siempre en orden con el tinglado que se monta sortedcontainers