sala.objetos
self.objetos.append({"id": id_objeto,
                     "probabilidad": prob_objeto,
                     "dificultad": dif_objeto,
                     "descripcion": desc_objeto,
                     "instancia":obj})

la idea es tener una función que resuma esto en algo como

letra número nombre (dificultad)

de momento tenemos

objetos_resumen = [] #va a ser una lista de diccionarios.
instancias = []
abecedario = list(string.letters[0:26])
abecedariousado = []
i = -1
numero = 1

for objeto in sala.objetos:
    i += 1
    for objetoresumido in objetos_resumen[:]:
        if objeto["id"] == objetoresumido["instancia"][0].id and objeto["dificultad"] == objetoresumido["dificultad"]:
            numero = objetoresumido["numero"] + 1
            letra = objetoresumido["letra"]
            objetos_resumen.remove(objetoresumido)

        else:
            numero = 1
            for i in abecedariousado[:]:
                if i in abecedario[:]:
                    abecedario.remove(i)
            letra = abecedario[0]
        
        objetos_resumen.append({'letra':letra,'numero':numero,'dificultad':objeto["dificultad"],'instancias':instancias.append(objeto["instancia"])})

if len(objetos_resumen) > 0:
    self.conn().send("Aquí hay:")            

for objeto in objetos_resumen[:]:
    if objeto["dificultad"] =< personaje.attr["inteligencia"]:
        
            self.conn().send(objeto["instancias"][0].nombre + \
                                 " (" + str(objeto["numero"]) + ")"+ " ["+objeto["letra"]+"]")


    
objetos_resumen = [] #conviene hacer una pequeña lista resumiendo los objetos que hay una lista
cantidad = 1 #cantidad por defecto de un objeto en una sala. valor inicial de una variable para el bucle que viene.

for objeto in sala.objetos:
    
    if self.__tirada_percep_sala >= objeto["dificultad"]:
        for objetoresumen in objetos_resumen[:]: #si ya existe ese objeto resumido en nuestra lista resumen...
            if objeto["id"] == objetoresumen["id"] and objeto["dificultad"] == objetoresumen["dificultad"]: #si es MUY parecido a efectos prácticos...
                cantidad = objetoresumen["cantidad"] + 1 #aumentamos en 1 la cantidad
                objetos_resumen.remove(objetoresumen) #borramos anteriores elementos con cantidades inferiores.
            else:
                cantidad = 1 #de lo contrario es la primera entrada y la cantidad es 1
            objetos_resumen.append({"id":objeto["id"],"cantidad":cantidad,"dificultad":objeto["dificultad"]})

    if len(objetos_resumen) > 0:
        self.conn().send("Aquí hay:")            

    for objeto in objetos_resumen[:]:
        for objetosala in sala.objetos[:]:

            if objeto["id"] == objetosala["id"]:

                self.conn().send(objetosala["descripcion"] + \
                                 " (" + str(objeto["cantidad"]) + ")"+ " ["+objeto["id"]+"]")
                break

