Een CSV bestand heeft volgende structuur:

Stad;Land;Inwoners
Het land wordt hierbij gecodeerd als een string van 2 letters, namelijk:

We wensen in dit bestand op zoek te gaan naar steden die met dezelfde startstring van n karakters beginnen. Schrijf een functie verwar_steden() met 2 argumenten, namelijk:

Het resultaat van de functie is een woordenboek, met als sleutel de gemeenschappelijke startstring van n karakters. De bijhorende waarde is een lijst van tuples. Elk van de tuples bestaat uit 3 componenten, namelijk :

Het woordenboek bevat enkel die startstrings waarmee meer dan 1 stad overeenstemt (en waarvoor dus verwarring mogelijk is). De volgorde van de lijst van tuples is dezelfde als de volgorde van de overeenkomstige gegevens in het originele bestand.

De bestanden die Dodona gebruikt in de testcases vind je in het gecomprimeerde bestand StedelijkeVerwarring.zip1.

Voorbeeld

Inhoud van het bestand 'Steden_in.csv':
Stad;Land;Aantal Inwoners
Acocks Green;GB;26635
Dreux;FR;31058
Beernem;BE;23030
Acton;GB;53689
Crook;GB;9498
Dresden;DE;486854
Brugge;BE;120112
Dreven;NL;32011
resultaat van de functie verwar_steden()
verwar_steden('Steden_in.csv', 1) =
{'D': [('Dreux', 'FR', '31058'), ('Dresden', 'DE', '486854'), ('Dreven', 'NL', '32011')], 'B': [('Beernem', 'BE', '23030'), ('Brugge', 'BE', '120112')], 'A': [('Acocks Green', 'GB', '26635'), ('Acton', 'GB', '53689')]}

verwar_steden('Steden_in.csv', 2) =
{'Ac': [('Acocks Green', 'GB', '26635'), ('Acton', 'GB', '53689')], 'Dr': [('Dreux', 'FR', '31058'), ('Dresden', 'DE', '486854'), ('Dreven', 'NL', '32011')]}

verwar_steden('Steden_in.csv', 3) =
{'Dre': [('Dreux', 'FR', '31058'), ('Dresden', 'DE', '486854'), ('Dreven', 'NL', '32011')]}