PROG0358 - Properties of countries

no tags 

For this assignment we will build a dictionary of country properties. The countries form the key to this dictionary. The values of the dictionary are dictionaries themselves that portray the name of a property on the value of that property for the country. Your assignment consists of writing a function that automatically reorganises the data in the format asked.

Assignment

Write a function addCountryProperty that has two obligatory and one optional argument. To the first parameter a string must be given that contains the name of a property (for example capital). To the second parameter a dictionary must be given that portrays the countries on the corresponding values for the property in question. To the optional parameter properties a dictionary can be given. If so, the values for the property must be added to that dictionary. If no value was given to the third parameter, a new dictionary must be made to which the values of the property must be added. The function must print the dictionary of properties as a result.

Example

>>> capitals = {
...     'Belgium': 'Brussels',
...     'Netherlands': 'Amsterdam',
...     'France': 'Paris',
...     'Germany': 'Berlin'
... }
>>> properties = addCountryProperty('capital', capitals)
>>> properties
{
    'France': {'capital': 'Paris'},
    'Belgium': {'capital': 'Brussels'},
    'Nederland': {'capital': 'Amsterdam'},
    'Germany': {'capital': 'Berlin'}
}
>>> population = {
...     'Belgium': 10438353,
...     'Netherlands': 16730632,
...     'France': 62814233,
...     'Germany': 81305856
... }
>>> addCountryProperty('population', population, properties)
{
    'France': {'population': 62814233, 'capital': 'Paris'},
    'Belgium': {'population': 10438353, 'capital': 'Brussels'},
    'Netherlands': {'population': 16730632, 'capital': 'Amsterdam'},
    'Germany': {'population': 81305856, 'capital': 'Berlin'}
}

In deze opgave gaan we een dictionary opbouwen van landeigenschappen. De landen vormen de sleutels van deze dictionary. De waarden van de dictionary zijn zelf dictionaries die de naam van een eigenschap afbeelden op de waarde van die eigenschap voor het land. Om deze geneste dictionary op te bouwen, vertrekken we van een dictionary voor een bepaalde eigenschap, die landen afbeeldt op hun waarde voor de eigenschap. Je opdracht bestaat erin een functie te schrijven die automatisch de gegevens herschikt in het gevraagde formaat.

Opgave

Schrijf een functie landeigenschapToevoegen die twee verplichte argumenten en één optioneel argument heeft. Aan de eerste parameter moet een string doorgegeven worden die de naam van een eigenschap (bijvoorbeeld hoofdstad) bevat. Aan de tweede parameter moet een dictionary doorgegeven worden die landen afbeeldt op de corresponderende waarde voor de desbetreffende eigenschap. Aan de optionele parameter met als naam eigenschappen kan een dictionary doorgegeven worden. Indien dat laatste het geval is, dan moeten de waarden voor de eigenschap aan die dictionary toegevoegd worden. Als er geen waarde opgegeven wordt voor de derde parameter, dan moet een nieuwe dictionary aangemaakt worden waaraan de waarden voor de eigenschap toegevoegd moeten worden. De functie moet als resultaat de dictionary met eigenschappen teruggeven.

Voorbeeld

>>> hoofdsteden = {
...     'België': 'Brussel',
...     'Nederland': 'Amsterdam',
...     'Frankrijk': 'Parijs',
...     'Duitsland': 'Berlijn'
... }
>>> eigenschappen = landeigenschapToevoegen('hoofdstad', hoofdsteden)
>>> eigenschappen
{
    'Frankrijk': {'hoofdstad': 'Parijs'},
    'België': {'hoofdstad': 'Brussel'},
    'Nederland': {'hoofdstad': 'Amsterdam'},
    'Duitsland': {'hoofdstad': 'Berlijn'}
}
>>> bevolking = {
...     'België': 10438353,
...     'Nederland': 16730632,
...     'Frankrijk': 62814233,
...     'Duitsland': 81305856
... }
>>> landeigenschapToevoegen('bevolking', bevolking, eigenschappen)
{
    'Frankrijk': {'bevolking': 62814233, 'hoofdstad': 'Parijs'},
    'België': {'bevolking': 10438353, 'hoofdstad': 'Brussel'},
    'Nederland': {'bevolking': 16730632, 'hoofdstad': 'Amsterdam'},
    'Duitsland': {'bevolking': 81305856, 'hoofdstad': 'Berlijn'}
}


Added by:Peter Dawyndt
Date:2013-04-01
Time limit:10s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:PY_NBC
Resource:None