Det finns två sätt att sortera en lista i stigande eller fallande ordning i Python.
sort()
sorted()
Om du vill sortera en sträng eller tupel använder du sorted().
Här finns följande information.
- En metod av typen list som sorterar den ursprungliga listan.
sort()
- Skapa en ny sorterad lista, inbyggd funktion: .
sorted()
- Hur man sorterar strängar och tupler
Sortering av den ursprungliga listan, en metod av typen list: sort()
sort() är en metod av listtyp.
En destruktiv process där den ursprungliga listan skrivs om.
org_list = [3, 1, 4, 5, 2]
org_list.sort()
print(org_list)
# [1, 2, 3, 4, 5]
Observera att sort() returnerar None.
print(org_list.sort())
# None
Standardvärdet är stigande ordning. Om du vill sortera i fallande ordning ställer du in argumentet reverse till true.
org_list.sort(reverse=True)
print(org_list)
# [5, 4, 3, 2, 1]
Skapa en ny sorterad lista, inbyggd funktion: sorted()
sorted() är en inbyggd funktion.
Återger en sorterad lista när listan som ska sorteras anges som argument. Detta är en icke-förstörande process som inte ändrar den ursprungliga listan.
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]
Precis som med sort() är standardvärdet stigande ordning. Om du vill sortera i fallande ordning, sätt argumentet reverse till 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]
Hur man sorterar strängar och tupler
Eftersom strängar och tupler är oföränderliga finns det ingen sort()-metod för att skriva om det ursprungliga objektet.
Å andra sidan kan argumentet för funktionen sorted(), som genererar en sorterad lista som ett nytt objekt, vara en sträng eller tupel samt en lista. Eftersom sorted() returnerar en lista måste den dock konverteras till en sträng eller tupel.
Sortering av strängar
När en sträng anges som argument för funktionen sorted() returneras en lista där varje tecken i den sorterade strängen lagras som ett element.
org_str = 'cebad'
new_str_list = sorted(org_str)
print(org_str)
print(new_str_list)
# cebad
# ['a', 'b', 'c', 'd', 'e']
Om du vill sammanfoga en lista med strängar till en enda sträng använder du metoden join().
new_str = ''.join(new_str_list)
print(new_str)
# abcde
Om du vill sortera i fallande ordning ska du ställa in argumentet reverse till 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
Storleken på en sträng bestäms av teckenets Unicode-kodpunkt (teckenkod).
Sortering av tupler
Tupler är samma sak som strängar; om du anger en tupel som argument för funktionen sorted() returneras en sorterad lista med element.
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 du vill konvertera en lista till en tupel använder du tuple().
new_tuple = tuple(new_tuple_list)
print(new_tuple)
# (1, 2, 3, 4, 5)
Om du vill sortera i fallande ordning ska du ställa in argumentet reverse till 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)