Hur man sorterar listor och ordböcker i Python
Sortering är en grundläggande operation i programmering, vilket gör att du kan organisera data i önskad ordning. Python tillhandahåller robusta verktyg för att sortera listor och ordböcker, vilket gör det enkelt att manipulera data effektivt. I den här artikeln kommer vi att utforska hur man sorterar både listor och ordböcker i Python, inklusive olika metoder och exempel.
Sorteringslistor
Listor är en av de mest använda datastrukturerna i Python. Du kan sortera listor med den inbyggda metoden sort()
eller funktionen sorted()
. Så här fungerar varje metod:
Använder sort()
Metoden sort()
sorterar en lista på plats, vilket betyder att den ändrar den ursprungliga listan och inte returnerar en ny lista. Som standard sorteras den i stigande ordning.
# Example: Sorting a list in ascending order
numbers = [4, 2, 9, 1, 5]
numbers.sort()
print(numbers) # Output: [1, 2, 4, 5, 9]
# Example: Sorting a list in descending order
numbers = [4, 2, 9, 1, 5]
numbers.sort(reverse=True)
print(numbers) # Output: [9, 5, 4, 2, 1]
I exemplen ovan sorterar metoden sort()
listan nummer
först i stigande och sedan i fallande ordning med hjälp av parametern reverse=True
.
Använder sorted()
Funktionen sorted()
returnerar en ny sorterad lista och ändrar inte den ursprungliga listan. Det låter dig också ange sorteringsordningen med parametern reverse
.
# Example: Using sorted() to get a new sorted list
numbers = [4, 2, 9, 1, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # Output: [1, 2, 4, 5, 9]
print(numbers) # Output: [4, 2, 9, 1, 5] (original list is unchanged)
# Example: Using sorted() to get a new sorted list in descending order
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc) # Output: [9, 5, 4, 2, 1]
Här returnerar sorterad()
en ny lista sorterade_tal
utan att ändra den ursprungliga tal
-listan. Du kan också sortera i fallande ordning med parametern reverse=True
.
Sortera ordböcker
Att sortera ordböcker innebär att ordlistan sorteras efter nycklar eller värden. Till skillnad från listor är ordböcker i sig oordnade fram till Python 3.7, där de började bevara insättningsordningen. Så här kan du sortera ordböcker:
Sortering efter nycklar
För att sortera en ordbok efter dess nycklar, använd sorted()
-funktionen tillsammans med ordboksförståelser eller loopar.
# Example: Sorting a dictionary by keys
data = {'banana': 3, 'apple': 4, 'orange': 2}
sorted_by_keys = {key: data[key] for key in sorted(data)}
print(sorted_by_keys) # Output: {'apple': 4, 'banana': 3, 'orange': 2}
I det här exemplet sorteras ordboken data
efter dess nycklar, vilket resulterar i en ny ordbok sorted_by_keys
där nycklar är i stigande ordning.
Sortering efter värden
För att sortera en ordbok efter dess värden kan du använda sorted()
-funktionen på ordbokens objekt och sedan skapa en ny ordbok.
# Example: Sorting a dictionary by values
data = {'banana': 3, 'apple': 4, 'orange': 2}
sorted_by_values = dict(sorted(data.items(), key=lambda item: item[1]))
print(sorted_by_values) # Output: {'orange': 2, 'banana': 3, 'apple': 4}
Här returnerar data.items()
en lista med tupler, och sorted()
används för att sortera dessa tupler efter det andra elementet (värdet) med hjälp av en lambda-funktion. Resultatet är en ny ordbok sorterat_efter_värden
med värden i stigande ordning.
Slutsats
Att sortera listor och ordböcker i Python är enkelt och kraftfullt, tack vare sort()
-metoden och sorted()
-funktionen för listor och olika tekniker för ordböcker. Att förstå dessa metoder hjälper dig att hantera och analysera data mer effektivt. Experimentera med dessa sorteringstekniker för att se hur de kan tillämpas på dina egna projekt!