In België is een deelgemeente het grondgebied van een voormalige gemeente die vóór de grote gemeentelijke herindelingen in de jaren 1960-'70 nog zelfstandig was. Binnen een fusiegemeente (kortweg gemeente) liggen dus net zoveel deelgemeenten als gemeenten waaruit de fusiegemeente ooit is ontstaan. Een voormalige gemeente mag zich deelgemeente noemen als het een onafhankelijke gemeente was op 1 januari 1961, de officiële startdatum van de grote herindelingsoperatie.
De naam deelgemeente heeft geen enkele juridische of bestuurlijke consequentie. Men kan wel, al dan niet op basis van de gebiedsomschrijving van de vroegere gemeenten, gemeenteafdelingen oprichten. Daar kan men plaatselijk een administratief bureau vestigen in een deelgemeentehuis, vaak in het vroegere gemeentehuis, dat een beperkte dienst aanbiedt voor administratieve formaliteiten (bevolking, burgerlijke stand) waarvan de documenten dan naar de centrale administratie worden doorgestuurd voor afhandeling. De politie kan in dezelfde lokalen een afdeling of commissariaat hebben. Culturele activiteiten (bibliotheek, vergaderzalen) kunnen er eveneens bij aansluiten.
Gegeven is een bestand dat de namen alle deelgemeenten oplijst uit een bepaalde regio. Elke regel van het bestand bevat de naam van een deelgemeente, gevolgd door een tab en de naam van de (fusie)gemeente waartoe de deelgemeente nu behoort. Gevraagd wordt:
Schrijf een functie leesGemeenten waaraan de naam van een tekstbestand moet doorgegeven worden. Dit tekstbestand bevat een oplijsting van alle deelgemeenten uit een bepaalde regio. De functie moet een dictionary teruggeven, die de namen van alle (fusie)gemeenten uit die regio afbeeldt op de verzameling namen van alle deelgemeenten waaruit de (fusie)gemeente bestaat.
Schrijf een functie zoekGemeenten waaraan twee argumenten moeten doorgegeven worden: de naam van een deelgemeente en een dictionary die namen van (fusie)gemeenten afbeeldt op een verzameling van alle deelgemeenten waaruit de (fusie)gemeente bestaat. De functie moet een verzameling teruggeven die de namen van alle (fusie)gemeenten bevat die een deelgemeente hebben met de opgegeven naam.
Schrijf een functie samenstellingen waaraan een dictionary moet doorgegeven worden die namen van (fusie)gemeenten afbeeldt op een verzameling van alle deelgemeenten waaruit de (fusie)gemeente bestaat. De functie moet een verzameling met de namen van alle (fusie)gemeenten uit de dictionary teruggeven, waarvoor de naam van de gemeente minstens één koppelteken (-) bevat en als je de naam opsplitst volgens de koppeltekens, alle onderdelen ook de naam van een deelgemeente vormen. Zo heeft de Vlaamse gemeente Knokke-Heist bijvoorbeeld twee deelgemeenten met namen Knokke en Heist.
Bij onderstaande voorbeeldsessie gaan we ervan uit dat het bestand vlaams_gewest.txt1 zich in de huidige directory bevindt.
>>> deelgemeenten = leesGemeenten('vlaams_gewest.txt')
>>> deelgemeenten['Anzegem']
{'Anzegem', 'Gijzelbrechtegem', 'Tiegem', 'Kaster', 'Vichte', 'Ingooigem'}
>>> deelgemeenten['Oostende']
{'Stene', 'Zandvoorde', 'Oostende'}
>>> deelgemeenten['Zonnebeke']
{'Zandvoorde', 'Zonnebeke', 'Geluveld', 'Passendale', 'Beselare'}
>>> zoekGemeenten('Tiegem', deelgemeenten)
{'Anzegem'}
>>> zoekGemeenten('Vladslo', deelgemeenten)
{'Diksmuide'}
>>> zoekGemeenten('Zandvoorde', deelgemeenten)
{'Zonnebeke', 'Oostende'}
>>> zoekGemeenten('Heusden', deelgemeenten)
{'Destelbergen', 'Heusden-Zolder'}
>>> zoekGemeenten('Berchem', deelgemeenten)
{'Antwerpen', 'Kluisbergen'}
>>> zoekGemeenten('Meldert', deelgemeenten)
{'Hoegaarden', 'Lummen', 'Aalst'}
>>> zoekGemeenten('Beveren', deelgemeenten)
{'Beveren', 'Waregem', 'Roeselare', 'Alveringem'}
>>> samenstellingen(deelgemeenten)
{'Knokke-Heist', 'Langemark-Poelkapelle', 'Scherpenheuvel-Zichem', 'Hamont-Achel', 'Houthalen-Helchteren', 'Lo-Reninge', 'Erpe-Mere', 'Spiere-Helkijn', 'Meeuwen-Gruitrode', 'Dilsen-Stokkem', 'Heusden-Zolder', 'Hechtel-Eksel'}