Python - Como anular sorted

 
Vista:

Como anular sorted

Publicado por Guillermo MG (3 intervenciones) el 24/12/2020 16:45:38
Hola que tal, no entiendo como anular la funcion sorted en un plugin.
Una porcion del plugin se encarga de listar sonidos disponibles en _re_[key] y mostrarlos, los ordena alfabeticamente (linea 24 en la porcion de codigo que subo), pero preciso que no lo haga, para cuando se agregen nuevos sonidos y estos sean colocados al principio de _re_ los muestre en las primeras paginas de listado, alguien me puede dar una mano.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
def cmd_soundlist(self, player, msg, channel):
    """Prints a page of the sound list"""
    page = 0
    linesPerPage = 20
    totalpages = -(-len(_re_) // linesPerPage) -1  #ceil division trick to get pages for 10 items per page, -1 as 0= first.
 
    if len(msg) < 2:
        return minqlx.RET_USAGE
 
    if len(msg) > 1:
        try:
            page = int(msg[1])
 
        except ValueError:
            player.tell("Invalid page number.")
            return minqlx.RET_STOP_ALL
 
    page = page - 1
    if page > totalpages:
        page = totalpages
    if page < 1:
        page = 0
    player.tell("^5Sound list - page {} of {}".format(page + 1, totalpages + 1))
    for key in sorted(_re_)[page * linesPerPage:page * linesPerPage + linesPerPage]:  # slice for pagination
        player.tell("   ^2{}".format(key))
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Como anular sorted

Publicado por joel (901 intervenciones) el 25/12/2020 08:32:44
Hola Guillermo, no se si te he entendido bien, pero si quitas la función sorted() en la linea 24 se soluciona el problema, no?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como anular sorted

Publicado por Guillermo MG (3 intervenciones) el 25/12/2020 14:40:34
joel, si elimino la linea no soluciona el problema, entiendo muy poco de python, al final estoy viendo de usar una funcion diferente solo para listar lo que preciso (unos 160 items) y dejar el resto de informacion sin mostrar (unos 500 items)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Como anular sorted

Publicado por joel (901 intervenciones) el 25/12/2020 14:52:00
No, no, tienes que eliminar la linea, solamente la función sorted()... algo así:
1
for key in _re_[page * linesPerPage:page * linesPerPage + linesPerPage]:  # slice for pagination
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como anular sorted

Publicado por Guillermo MG (3 intervenciones) el 25/12/2020 15:04:44
joel, ya lo he intentado pero no funciona me tira un error, [TypeError: unhashable type: 'slice']
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Como anular sorted

Publicado por joel (901 intervenciones) el 26/12/2020 09:27:13
Que extraño Guillermo... en esa linea te da el error?? que contenido tiene _re_?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar