Gegeven is een CSV-bestand waarbij de eerste regel kolomhoofdingen bevat. Elke kolom bevat evenveel gegevens. Het is de bedoeling een gesorteerde versie van dit CSV-bestand te maken, waarbij de eerste regel van het CSV-bestand (die de kolomhoofdingen bevat) uiteraard niet mee-gesorteerd wordt. Deze eerste regel wordt gewoon overgenomen in de gesorteerde versie.
We schrijven een functie sorteer() met volgende argumenten:

Het derde argument is een lijst met kolomnummers. De lijst bevat geen dubbels, en heeft dus als maximale lengte het aantal kolommen in het CSV-bestand. Dit argument legt vast op welke manier gesorteerd moet worden. Hierbij ga je als volgt tewerk: voor elke rij van de tabel, met uitzondering van de eerste regel, construeer je een string. Deze string is de concatenatie van alle kolommen die in de argumentlijst voorkomen, telkens door 1 spatie gescheiden. Deze string wordt als basis voor de sortering gebruikt (m.a.w. gebruik deze string om de ingebouwde Python-sorteer methode sorted() aan te sturen). Je mag ervan uitgaan dat het lijstargument zo gekozen wordt, dat de sortering ondubbelzinnig is.

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

Voorbeeld

sorteer('Sorteer_0_in.csv', 'Sorteer_0_out.csv', [0], reverse = True)
Inhoud 'Sorteer_0_in.csv'
Voornaam;Familienaam;Nederlands;Frans;Maatschappelijke Vorming;Geschiedenis;Latijn;Wetenschappelijk Werk;Fysica
Sofie;Van de Putte;16,0;16,0;15,0;17,0;17,0;18,0;15,0
Zoe;De Jonge;17,0;15,0;16,0;16,0;16,0;17,0;16,0
Greet;Vergote;18,0;15,0;18,0;18,0;18,0;17,0;18,0
Domien;Verstraete;16,0;16,0;17,0;17,0;15,0;17,0;17,0
Miriam;Cornelissen;17,0;15,0;15,0;15,0;17,0;15,0;16,0
Ulrike;Bomans;17,0;18,0;17,0;15,0;15,0;18,0;15,0
Werner;Vrielinck;16,0;16,0;18,0;17,0;17,0;15,0;18,0
Chris;Pieters;15,0;16,0;16,0;17,0;15,0;16,0;18,0
Xantippe;Truwant;17,0;16,0;18,0;16,0;17,0;18,0;16,0
Lotte;Geeraert;18,0;15,0;15,0;17,0;17,0;18,0;16,0
Nick;Paulussen;18,0;16,0;17,0;15,0;15,0;16,0;16,0
Quinten;Nachtegaele;18,0;17,0;16,0;18,0;16,0;18,0;16,0
Inhoud 'Sorteer_0_out.csv'
Voornaam;Familienaam;Nederlands;Frans;Maatschappelijke Vorming;Geschiedenis;Latijn;Wetenschappelijk Werk;Fysica
Zoe;De Jonge;17,0;15,0;16,0;16,0;16,0;17,0;16,0
Xantippe;Truwant;17,0;16,0;18,0;16,0;17,0;18,0;16,0
Werner;Vrielinck;16,0;16,0;18,0;17,0;17,0;15,0;18,0
Ulrike;Bomans;17,0;18,0;17,0;15,0;15,0;18,0;15,0
Sofie;Van de Putte;16,0;16,0;15,0;17,0;17,0;18,0;15,0
Quinten;Nachtegaele;18,0;17,0;16,0;18,0;16,0;18,0;16,0
Nick;Paulussen;18,0;16,0;17,0;15,0;15,0;16,0;16,0
Miriam;Cornelissen;17,0;15,0;15,0;15,0;17,0;15,0;16,0
Lotte;Geeraert;18,0;15,0;15,0;17,0;17,0;18,0;16,0
Greet;Vergote;18,0;15,0;18,0;18,0;18,0;17,0;18,0
Domien;Verstraete;16,0;16,0;17,0;17,0;15,0;17,0;17,0
Chris;Pieters;15,0;16,0;16,0;17,0;15,0;16,0;18,0