Dit is een vervolg op de vorige oefening.

Het bestand provincieSteden.txt1 bevat voor alle steden/gemeenten uit België de postcode en de provincie waarin de gemeente/stad ligt.

Opgave

Schrijf de functie alle_postcodes(provincie) die het bestand provincieSteden.txt2 inleest. Alle postcodes die in de opgegeven provincie voorkomen worden in een lijst gestopt. Elke postcode mag maar 1 keer voorkomen in de lijst! Bovendien moet de lijst met postcodes geordend teruggegeven worden.
Je mag veronderstellen dat het bestand provincieSteden.txt bestaat en juist gestructureerd is (geen foutafhandeling).

Voorbeeld

>>> alle_postcodes("Oost-Vlaanderen") 
['9000', '9030', '9031', '9032', '9040', '9041', '9042', '9050', '9051', '9052', '9060', '9070', '9080', '9090', '9100', '9111', '9112', '9120', '9130', '9140', '9150', '9160', '9170', '9180', '9185', '9190', '9200', '9220', '9230', '9240', '9250', '9255', '9260', '9270', '9280', '9290', '9300', '9308', '9310', '9320', '9340', '9400', '9401', '9402', '9403', '9404', '9406', '9420', '9450', '9451', '9470', '9472', '9473', '9500', '9506', '9520', '9521', '9550', '9551', '9552', '9570', '9571', '9572', '9600', '9620', '9630', '9636', '9660', '9661', '9667', '9680', '9681', '9688', '9690', '9700', '9750', '9770', '9771', '9772', '9790', '9800', '9810', '9820', '9830', '9831', '9840', '9850', '9860', '9870', '9880', '9881', '9890', '9900', '9910', '9920', '9921', '9930', '9931', '9932', '9940', '9950', '9960', '9961', '9968', '9970', '9971', '9980', '9981', '9982', '9988', '9990', '9991', '9992']

Tips

Ik vind het juiste type niet voor de parameters van deze functie. def alle_postcodes(provincie: str) -> list
Hoe kan een functie een lijst aanmaken en teruggeven?
  • Initialiseer in de functie een lege lijst: postcodes = []
  • Voeg aan die lijst de gewenste informatie toe, gebruik .append
  • Geef de lijst terug met return postcodes
Hoe knip ik een postcode uit een regel?
  • Dit kan heel eenvoudig als je de lijn opsplitst in woorden, met .split
  • Neem daarna het tweede element van de lijst.
Hoe kan ik ervoor zorgen dat elke postcode maar één keer voorkomt in een list ? Controleer vooraf of de postcode al in de lijst staat, met een methode van list.
Hoe kan ik ervoor zorgen dat de lijst geordend is?
  • Zoek in de API naar .sort en sorted
  • Beide functies kan je gebruiken om te sorteren, maar er is een belangrijk verschil!
Wat is het verschil tussen .sort en sorted ?
  • De methode .sort kan je toepassen op een list en zal de list sorteren.
  • De Python functie sorted kan je toepassen op een iterable, dus ook op een list, maar deze zal een gesorteerde list teruggeven, zonder de parameter te wijzigen.