Een property list is een lijst die bestaat uit de opeenvolging van telkens de naam van een property (eigenschap) en de waarde: ['property_name_1', value1, 'property_name_2', value2,...]. Een property list heeft bijgevolg altijd een even aantal elementen. De naam van de property moet een string zijn, de waarde kan om het even wat zijn. Een property kan nooit meer dan één keer voorkomen in de lijst.
['naam', 'Els', 'vak', 'Programmeren', 'punten', 18]
['naam', 'Len', 'vak', 'Programmeren', 'punten', 12]
Schrijf een functie set_value die drie argumenten heeft: een property list (zoals hierboven gedefineerd), de naam van een property en de waarde.
Deze functie gaat na of de property met de opgegeven naam voorkomt in de lijst. Indien wel, dan wordt de bestaande waarde aangepast naar de opgegeven waarde. Indien niet, wordt de property achteraan toegevoegd aan de lijst met de bijhorende waarde.
De functie set_value retourneert de oorspronkelijke lijst waar de opgegeven property ingevuld of achteraan toegevoegd is.
Je mag ervan uitgaan dat de opgegeven lijst in de juiste vorm is.
>>> set_value(['naam', 'Els', 'vak', 'Programmeren', 'punten', 6], 'punten', 16)
['naam', 'Els', 'vak', 'Programmeren', 'punten', 16]
>>> set_value(['naam', 'Els', 'vak', 'Programmeren', 'punten', 6], 'zittijd', 1)
['naam', 'Els', 'vak', 'Programmeren', 'punten', 6, 'zittijd', 1]
>>> set_value([], 'programmeren', 18)
['Programmeren', 18]
We simuleren in deze oefening de programmeertaal LISP in Python. Het is niet de bedoeling dat je de eigenschappen en methoden van Python list objecten gebruikt, noch is het toegelaten om via for, while of list comprehensions een lijst te doorlopen.