Een uitbreiding op
Demografie - met foutafhandeling.
Beperkt je tot de verwerking van
.csv bestanden met drie kolommen, zoals
inwoners.csv en
oppervlakte.csv
Gebruik de nieuwe bestanden - de speciale tekens voor de landen zijn vervangen door gewone ascii-tekens - andere informatie is ongewijzigd.
Je mag veronderstellen dat de bestanden geordend zijn.
Opgave
- Pas de functie geefdata(lijn) aan zodat ze een tuple teruggeeft. Deze tuple bevat de data (reeel getal), aangevuld met het land dat daarbij hoort.
Opmerkingen:
- Indien de derde kolom geen getal bevat, dan wordt voor data 0 ingevuld.
- De tweede kolom bevat informatie over het land, maar ook informatie over de vlag van het land. Zorg dat je enkel de naam van het land eruit haalt. Er zijn vier lijnen waar extra werk nodig is. Zoek een 'werkende' oplossing (mag extra if bevatten)
- Schrijf de functie landen(type) die een geordende lijst teruggeeft van alle landen die voorkomen in de tabel (voor het opgegeven type). Gebruik de vorige functie.
- Pas de functie zoek_grootste(type) aan zodat ze een tuple teruggeeft. De tuple is opgebouwd zoals in de vorige opgave.
- Schrijf de functie top(type, n) die een list teruggeeft van tuples. De tuple is opgebouwd zoals in de eerste opgave, en de list bevat de n tuples met de grootste waarde voor data.
Voorbeelden
>>> geefdata("225;Vlag van Verenigd Koninkrijk Sint-Helena, Ascension en Tristan da Cunha;7.828 (2017)")
(7828.0, 'Sint-Helena, Ascension en Tristan da Cunha')
>>> landen("inwoners")
['Afghanistan', 'Akrotiri en Dhekelia', 'Albanie', 'Algerije', 'Amerikaans-Samoa',....]
>>> zoek_grootste("oppervlakte")
(17098246.0, 'Rusland')
>>> top("inwoners", 5)
[(1379302771.0, 'China'), (1281935911.0, 'India'), (326625791.0, 'Verenigde Staten'), (260580739.0, 'Indonesie'), (207353391.0, 'Brazilie')]