2024-05-06 00:43:13 +02:00
|
|
|
# Ü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.
|
|
|
|
|
2024-05-07 00:24:56 +02:00
|
|
|
Tipp: Machen Sie zunächst eine Kopie des ersten Dictionaries ([dict.copy]`()`)
|
2024-05-06 00:43:13 +02:00
|
|
|
und fügen Sie dann die Einträge des zweiten Dictionaries der Kopie hinzu
|
2024-05-07 00:24:56 +02:00
|
|
|
([dict.update]`()`).
|
|
|
|
|
|
|
|
[dict.copy]: https://docs.python.org/3/library/stdtypes.html#dict.copy
|
|
|
|
[dict.update]: https://docs.python.org/3/library/stdtypes.html#dict.update
|
2024-05-06 00:43:13 +02:00
|
|
|
|
|
|
|
|
|
|
|
## 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
|
2024-05-07 00:24:56 +02:00
|
|
|
diese Daten in einem *neuen* Dictionary (z.B. `salaries_new`) mit der selben
|
|
|
|
Struktur speichert. Das ursprüngliche Dictionary soll *nicht* verändert werden.
|
2024-05-06 00:43:13 +02:00
|
|
|
|
|
|
|
|
|
|
|
## Aufgabe 5:
|
|
|
|
|
|
|
|
Lassen Sie das Program dieses neue Dictionary in folgendem Format ausgeben:
|
|
|
|
|
|
|
|
```
|
|
|
|
Name Gehalt
|
|
|
|
--------------
|
|
|
|
Anna ???
|
|
|
|
Mark ???
|
|
|
|
...
|
|
|
|
```
|
|
|
|
|
2024-05-07 00:24:56 +02:00
|
|
|
Tipp: verwenden Sie die String-Methode [ljust]`()` für die Ausgabe der ersten
|
|
|
|
Spalte, um die zweite Spalte auszurichten.
|
|
|
|
|
|
|
|
[ljust]: https://docs.python.org/3/library/stdtypes.html#str.ljust
|
2024-05-06 00:43:13 +02:00
|
|
|
|
|
|
|
|
|
|
|
## 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).
|
|
|
|
|
2024-05-07 00:24:56 +02:00
|
|
|
Tipp: verwenden Sie die Funktion [sorted]`()` zum Sortieren.
|
2024-05-06 00:43:13 +02:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
2024-05-07 00:24:56 +02:00
|
|
|
[sorted]: https://docs.python.org/3/library/functions.html#sorted
|
|
|
|
|
|
|
|
|
2024-05-06 00:43:13 +02:00
|
|
|
## Ressourcen
|
|
|
|
|
|
|
|
Hilfe zu Dictionaries:
|
|
|
|
|
|
|
|
* <https://docs.python.org/3/library/stdtypes.html#mapping-types-dict>
|
|
|
|
* <https://www.data-science-architect.de/dictionaries-python/>
|