Sortera objekt i en lista
Ibland vill man sortera objekt man har i en lista. För listor som innehåller inbyggda datatyper som t.ex. str och int, behöver man inte göra något speciellt. Se exempel nedan:
>>> a = [1, 5, 3]
>>> a
[1, 5, 3]
>>> a.sort()
>>> a
[1, 3, 5]
För objekt som är instanser av t.ex. egna klasser, måste man berätta vilken nyckel som ska användas. Detta gör man genom att ange en anonym funktion - dvs en funktion man definierar på plats. Se nedanstående exempel.
class Player(object):
def __init__(self, name):
self.name = name
list_of_players = [Player("Hugo"), Player("Hilda"), Player("Adam")]
# för att sortera list_of_players anger vi att det är player.name som ska
# användas
list_of_players.sort(key=lambda player: player.name)
Ovanstående kommer att se till att listan list_of_players innehåller objekten i stigande alfabetisk ordning med avseende på Player-objektens namn.
Sidansvarig: Jody Foo
Senast uppdaterad: 2013-02-18
