Een lijst sorteren in Python: het verschil tussen gesorteerd en gesorteerd

Bedrijf

Er zijn twee manieren om een lijst in oplopende of aflopende volgorde te sorteren in Python.

  • sort()
  • sorted()

Als je een string of tuple wilt sorteren, gebruik je sorted().

De volgende informatie wordt hier verstrekt.

  • Een methode van het type lijst die de oorspronkelijke lijst sorteertsort()
  • Genereer een nieuwe gesorteerde lijst, ingebouwde functie: .sorted()
  • Hoe tekenreeksen en tupels sorteren

Sorteren van de oorspronkelijke lijst, een methode van het type lijst: sort()

sort() is een methode van het lijsttype.

Een destructief proces waarbij de oorspronkelijke lijst zelf wordt herschreven.

org_list = [3, 1, 4, 5, 2]

org_list.sort()
print(org_list)
# [1, 2, 3, 4, 5]

Merk op dat sort() niets teruggeeft.

print(org_list.sort())
# None

De standaardinstelling is oplopende volgorde. Als u wilt sorteren in aflopende volgorde, zet dan het argument reverse op true.

org_list.sort(reverse=True)
print(org_list)
# [5, 4, 3, 2, 1]

Genereer een nieuwe gesorteerde lijst, ingebouwde functie: sorted()

sorted() is een ingebouwde functie.

Geeft een gesorteerde lijst terug als de te sorteren lijst als argument is opgegeven. Dit is een niet-destructief proces dat de originele lijst niet verandert.

org_list = [3, 1, 4, 5, 2]

new_list = sorted(org_list)
print(org_list)
print(new_list)
# [3, 1, 4, 5, 2]
# [1, 2, 3, 4, 5]

Zoals bij sort() is de standaardinstelling oplopende volgorde. Als u wilt sorteren in aflopende volgorde, zet dan het argument reverse op true.

new_list_reverse = sorted(org_list, reverse=True)
print(org_list)
print(new_list_reverse)
# [3, 1, 4, 5, 2]
# [5, 4, 3, 2, 1]

Hoe tekenreeksen en tupels sorteren

Aangezien strings en tuples onveranderlijk zijn, is er geen sort() methode beschikbaar om het originele object te herschrijven.

Anderzijds kan het argument van de functie sorted(), die een gesorteerde lijst als een nieuw object genereert, zowel een string of tupel als een lijst zijn. Aangezien sorted() echter een lijst teruggeeft, moet deze worden geconverteerd naar een string of tuple.

Reeksen sorteren

Wanneer een tekenreeks wordt opgegeven als argument van de functie sorted(), wordt een lijst teruggegeven waarin elk teken van de gesorteerde tekenreeks als een element wordt opgeslagen.

org_str = 'cebad'

new_str_list = sorted(org_str)
print(org_str)
print(new_str_list)
# cebad
# ['a', 'b', 'c', 'd', 'e']

Gebruik de methode join() om een lijst van tekenreeksen samen te voegen tot een enkele tekenreeks.

new_str = ''.join(new_str_list)
print(new_str)
# abcde

Als u in aflopende volgorde wilt sorteren, zet dan het argument reverse op true.

new_str = ''.join(sorted(org_str))
print(new_str)
# abcde

new_str_reverse = ''.join(sorted(org_str, reverse=True))
print(new_str_reverse)
# edcba

De grootte van een tekenreeks wordt bepaald door het Unicode-codepunt (tekencode) van het teken.

Tupels sorteren

Tuples zijn hetzelfde als strings; een tuple specificeren als argument van de sorted() functie geeft een gesorteerde lijst van elementen.

org_tuple = (3, 1, 4, 5, 2)

new_tuple_list = sorted(org_tuple)
print(org_tuple)
print(new_tuple_list)
# (3, 1, 4, 5, 2)
# [1, 2, 3, 4, 5]

Om een lijst om te zetten in een tuple, gebruik je tuple().

new_tuple = tuple(new_tuple_list)
print(new_tuple)
# (1, 2, 3, 4, 5)

Als u in aflopende volgorde wilt sorteren, zet dan het argument reverse op true.

new_tuple = tuple(sorted(new_tuple_list))
print(new_tuple)
# (1, 2, 3, 4, 5)

new_tuple_reverse = tuple(sorted(new_tuple_list, reverse=True))
print(new_tuple_reverse)
# (5, 4, 3, 2, 1)