Sortowanie listy

0

Mam listę:

lista = [(4, 8), (13, 16), (23, 26), (23, 25), (43, 46)]

Chciałbym otrzymać taką listę:

lista = [(4, 8), (13, 16), (23, 25), (23, 26), (43, 46)]

Użyłem kodu:

li = lista.sort(key=min)

Jednak działa on tylko na pierwszą wartość.

1
lista.sort(key=lambda x: (x[0], x[1]))
0
adrian18 napisał(a):

Mam listę:

lista = [(4, 8), (13, 16), (23, 26), (23, 25), (43, 46)]

Chciałbym otrzymać taką listę:

lista = [(4, 8), (13, 16), (23, 25), (23, 26), (43, 46)]

Użyłem kodu:

li = lista.sort(key=min)

Jednak działa on tylko na pierwszą wartość.

Jak działa tylko na 1 wartość? Bzdura, posortuje najpierw po pierwszej wartości, potem po drugiej.

PS. W tym wypadku wystarczy samo sort, bez podawania key

1
nalik napisał(a):
adrian18 napisał(a):

Mam listę:

lista = [(4, 8), (13, 16), (23, 26), (23, 25), (43, 46)]

Chciałbym otrzymać taką listę:

lista = [(4, 8), (13, 16), (23, 25), (23, 26), (43, 46)]

Użyłem kodu:

li = lista.sort(key=min)

Jednak działa on tylko na pierwszą wartość.

Jak działa tylko na 1 wartość? Bzdura, posortuje najpierw po pierwszej wartości, potem po drugiej.

PS. W tym wypadku wystarczy samo sort, bez podawania key

li = lista.sort(key=min) posortuje biorąc pod uwagę najmniejszą wartość z każdej tupli, bo każda tupla będzie przekazana do min jako parametr, a jak przekażesz iterable do min to dostaniesz w wyniku najmniejszą wartość w kolekcji. Reszta się zgadza, wystarczy samo .sort() bez podawania klucza, bo Python domyślnie porównuje tuple parami wartość po wartości.

Btw. czy list.sort nie sortuje listy w miejscu i li będzie zawsze ´None`?

1 użytkowników online, w tym zalogowanych: 0, gości: 1