Deze oefening heeft als doel om de basishandelingen met dictionary in te oefenen.
We werken met een dictionary van films.
Elk element in de lijst heeft als key de naam van een film en als overeenkomstige value een list met jaartallen waarop deze films gereleased zijn.
Voorbeeld:
d = {"Star Wars": [1977, 2008, 2019, 1999, 2008, 2003, 2017, 2015, 2002],
"Back To The Future": [1985, 1989, 1990],
"The Hunger Games": [2012, 2013, 2014],
"Die Hard": [1988, 1990, 2007, 1995, 2013],
"Casablanca": [1942]}
release_aanwezig
Schrijf een functie release_aanwezig met drie argumenten: een dictionary van films zoals hierboven gedefineerd, de naam van een film (string) en een jaartal (int).
De functie gaat na of er een release van de film in dat jaar was. De naam van de film moet exact zijn (hoofdlettergevoelig).
De functie retourneert een boolean waarde True of False.
>>> release_aanwezig({'Casablanca': [1942], 'Back To The Future': [1985, 1989, 1990], 'The Hunger Games': [2012, 2013, 2014]}, "Casablanca", 1942) True >>> release_aanwezig({'Casablanca': [1942], 'Back To The Future': [1985, 1989, 1990], 'The Hunger Games': [2012, 2013, 2014]}, "Casablanca", 2025) False >>> release_aanwezig({'Casablanca': [1942]}, "Star Wars", 2008) False
nieuwe_release
Schrijf een functie nieuwe_release met drie argumenten: een dictionary van films zoals hierboven gedefineerd, de naam van een film (string) en een jaartal (int).
De functie voegt het jaartal toe als de film al aanwezig was in de dictionary. Het nieuwe jaartal wordt achter in de lijst toegevoegd, de volgorde van de jaartallen blijft verder ongewijzigd. Als de film nog niet aanwezig was, dan wordt deze tevens toegevoegd als key. Als de release al aanwezig was, gebeurt er niets.
De functie retourneert de (aangepaste) dictionary.
>>> nieuwe_release({'The Hunger Games': [2012, 2013, 2014]}, "Star Wars", 2003) {'The Hunger Games': [2012, 2013, 2014], 'Star Wars': [2003]} >>> nieuwe_release({'Back To The Future': [1985, 1989, 1990], 'Casablanca': [1942], 'The Hunger Games': [2012, 2013, 2014], 'Die Hard': [1988, 1990, 2007, 1995, 2013]}, "The Hunger Games", 2025) {'Back To The Future': [1985, 1989, 1990], 'Casablanca': [1942], 'The Hunger Games': [2012, 2013, 2014, 2025], 'Die Hard': [1988, 1990, 2007, 1995, 2013]}
verwijder_release
Schrijf een functie verwijder_release met drie argumenten: een dictionary van films zoals hierboven gedefineerd, de naam van een film (string) en een jaartal (int).
De functie verwijdert de release (het jaartal) van de opgegeven film uit de dictionary. De volgorde van de jaartallen blijft verder ongewijzigd. Als de lijst met jaartallen van deze film nu leeg zou zijn, dan wordt ook de film als key verwijderd uit de dictionary. Als de release niet aanwezig was, gebeurt er niets.
De functie retourneert de (aangepaste) dictionary.
>>> verwijder_release({'Back To The Future': [1985, 1989, 1990], 'The Godfather': [1968]}, "The Godfather", 1968) {'Back To The Future': [1985, 1989, 1990]} >>> verwijder_release({'Star Wars': [1977, 2008, 2019, 1999, 2008, 2003, 2017, 2015, 2002], 'Back To The Future': [1985, 1989, 1990]}, "Star Wars", 2008) {'Star Wars': [1977, 2019, 1999, 2008, 2003, 2017, 2015, 2002], 'Back To The Future': [1985, 1989, 1990]}
analyse
Schrijf een functie analyse met één argument: een dictionary zoals hierboven gedefineerd.
De functie retourneert een dictionary met als keys de films. Als value wordt een nieuwe dictionary gecreëerd met keys "aantal", "eerste" en "laatste". De values van deze sub-dictionary zijn respectievelijk: het aantal jaartallen in de lijst, het jaartal van de oudste release en van de meest recente.
>>> analyse({'Back To The Future': [1985, 1989, 1990], 'Casablanca': [1942], 'Star Wars': [1977, 2008, 2019, 1999, 2008, 2003, 2017, 2015, 2002]}) {'Back To The Future': {'aantal': 3, 'eerste': 1985, 'laatste': 1990}, 'Casablanca': {'aantal': 1, 'eerste': 1942, 'laatste': 1942}, 'Star Wars': {'aantal': 9, 'eerste': 1977, 'laatste': 2019}}