94 lines
2.5 KiB
Markdown
94 lines
2.5 KiB
Markdown
|
# Übungen zu Dictionaries
|
||
|
|
||
|
|
||
|
## Ausgangslage
|
||
|
|
||
|
Sie haben zwei Tabellen mit Personallisten jeweils mit Namen und Monatsgehältern
|
||
|
als ein Python-Dictionary. Die Keys sind die Namen der Angestellten (strings),
|
||
|
die Werte das jeweilige Monatsgehalt (integer):
|
||
|
|
||
|
```py
|
||
|
salaries_1 = {'Anna': 2000, 'Mark': 3000, 'Judith': 3500, 'Thomas': 2500}
|
||
|
salaries_2 = {'Barbara': 3000, 'Elke': 3300, 'Michael': 2800, 'Johann': 2000}
|
||
|
```
|
||
|
|
||
|
|
||
|
## Aufgabe 1:
|
||
|
|
||
|
Schreiben Sie ein Programm, das die beiden Dictionaries in einem neuen
|
||
|
Dictionary (`salaries_all`) zusammenführt und die Namen aller Mitarbeiter
|
||
|
als Liste ausgibt.
|
||
|
|
||
|
Tipp: Machen Sie zunächst eine Kopie des ersten Dictionaries (`dict.copy()`)
|
||
|
und fügen Sie dann die Einträge des zweiten Dictionaries der Kopie hinzu
|
||
|
(`dict.update()`).
|
||
|
|
||
|
|
||
|
## Aufgabe 2:
|
||
|
|
||
|
Schreiben Sie ein Programm, das den Namen und das Gehalt des Mitarbeiters mit
|
||
|
dem höchsten Gehalt aus den gesamten Daten ermittelt und diese ausgibt (mit
|
||
|
`print`).
|
||
|
|
||
|
|
||
|
## Aufgabe 3:
|
||
|
|
||
|
Schreiben Sie ein Programm, das die Gesamtsumme aller monatlichen Gehälter
|
||
|
ermittelt und diese ausgibt.
|
||
|
|
||
|
|
||
|
## Aufgabe 4:
|
||
|
|
||
|
Schreiben Sie ein Programm, das das Gehalt aller Mitarbeiter um 10% erhöht und
|
||
|
diese Daten in einem *neuen* Dictionary mit der selben Struktur speichert. Das
|
||
|
ursprüngliche Dictionary soll nicht verändert werden.
|
||
|
|
||
|
|
||
|
## Aufgabe 5:
|
||
|
|
||
|
Lassen Sie das Program dieses neue Dictionary in folgendem Format ausgeben:
|
||
|
|
||
|
```
|
||
|
Name Gehalt
|
||
|
--------------
|
||
|
Anna ???
|
||
|
Mark ???
|
||
|
...
|
||
|
```
|
||
|
|
||
|
Tipp: verwenden Sie die Escape-Sequenz für Tabulatoren `\t`.
|
||
|
|
||
|
|
||
|
## Aufgabe 6:
|
||
|
|
||
|
|
||
|
Lassen Sie das Programm die alten Gehälter in der gleichen Form ausgeben,
|
||
|
um zu zeigen, dass das ursprüngliche Dictionary nicht verändert wurde.
|
||
|
|
||
|
|
||
|
## Bonusaufgaben:
|
||
|
|
||
|
1. Sortieren Sie die Liste nach Höhe des Gehalts (absteigend).
|
||
|
|
||
|
Tipp: verwenden Sie die Funktion `sorted()` zum Sortieren.
|
||
|
|
||
|
2. Nummerieren Sie die Listeneinträge in der Ausgabe, startend mit 1.
|
||
|
|
||
|
3. Ermitteln Sie das durchschnittliche Gehalt nach der Erhöhung.
|
||
|
|
||
|
4. Berechnen Sie, wieviel Prozent des durchschnitlichen Gehalts jeder Mitarbeiter
|
||
|
verdient und geben diese Prozentzahl in einer zusätzlichen Spalte aus.
|
||
|
|
||
|
Tipp: Sie können die Prozentzahlen in einem neuen, zusätzlichen Dictionary
|
||
|
speichern oder, anstatt nur dem Gehalt, für jeden Mitarbeiter das Gehalt und
|
||
|
die Prozent des Durchschnittsverdienstes als Tuple mit zwei Elementen als
|
||
|
Wert im Dictionary ablegen.
|
||
|
|
||
|
|
||
|
## Ressourcen
|
||
|
|
||
|
Hilfe zu Dictionaries:
|
||
|
|
||
|
* <https://docs.python.org/3/library/stdtypes.html#mapping-types-dict>
|
||
|
* <https://www.data-science-architect.de/dictionaries-python/>
|