TransWikia.com

Sorting in list

Stack Overflow en español Asked by user182700 on January 29, 2021

tengo esta lista que dentro de ella hay más listas:

list = [[8, 9, 14, 15, 16, 18, 4, 6, 10, 12],
        [21, 22, 25, 26, 27, 20, 24],
        [34, 28, 32, 33, 30, ],
        [38, 39, 42, 44, 35, 36, 40],
        [52, 54, 45, 48, 49, 50, 51, 46]]

Este es mi codigo, trato de no usar sort:

def ordenar(list):
    for i in range(len(list)):
        h = i
        while h > 0 and list[h] < list[h - 1]:
            aux = list[h]
            list[h] = list[h - 1]
            list[h - 1] = aux
            h = h - 1
    print("*****", list)

Esto es lo que me debe salir pero no me sale nada :

[4, 6, 8, 9, 10, 12, 14, 15, 16, 18] 
[20, 21, 22, 24, 25, 26, 27]
[28, 30, 32, 33, 34]
[35, 36, 38, 39, 40, 42, 44] 
[45, 46, 48, 49, 50, 51, 52, 54] 

One Answer

Fíjate que comparas una lista con otra lista. Mira el caso cuando h = 1

Cuando haces list[h] lo que te devuelve es esta lista [21, 22, 25, 26, 27, 20, 24]. Luego haces list[h-1] que te devuelve [8, 9, 14, 15, 16, 18, 4, 6, 10, 12]

Entonces estarías comparando esto:

[21, 22, 25, 26, 27, 20, 24] < [8, 9, 14, 15, 16, 18, 4, 6, 10, 12]

Python te lo permite, pero no es lo que buscas.

Ahora bien vos deberías acceder a cada sublista de tu lista y ordenarlas como si fuese una lista normal. Si te preguntas como podrías acceder a cada sublista, vuelve a leer desde el principio de este mensaje, está explicito.

Por ultimo, estas usando el nombre de un tipo list, te recomiendaría que lo cambies por otro nombre.

Answered by manchess on January 29, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP