Schlüssel-Wert-Paare und Datenstrukturen
alien_0 = {'color': 'green', 'points': 5}
print(alien_0['color']) # green
print(alien_0['points']) # 5
# Neuen Wert hinzufügen
alien_0['x_position'] = 0
alien_0['y_position'] = 25
alien_0 = {'color': 'green', 'points': 5}
# Direkter Zugriff
new_points = alien_0['points']
print(f"You just earned {new_points} points!")
# Mit get() - sicherer Zugriff
point_value = alien_0.get('points', 0)
speed = alien_0.get('speed', 'No speed value assigned')
print(point_value) # 5
print(speed) # No speed value assigned
→ kapitel_6_aufgaben_6-1_6-3.ipynb
↓ Lösungen
# 6-1: Person
person = {
'first_name': 'Max',
'last_name': 'Mustermann',
'age': 25,
'city': 'Hamburg'
}
print(f"Name: {person['first_name']} {person['last_name']}")
print(f"Alter: {person['age']}")
print(f"Stadt: {person['city']}")
Ausgabe:
Name: Max Mustermann
Alter: 25
Stadt: Hamburg
# 6-2: Lieblingszahlen
favorite_numbers = {
'alice': 7,
'bob': 42,
'charlie': 13,
'diana': 3,
'eve': 21
}
for name, number in favorite_numbers.items():
print(f"{name.title()}s Lieblingszahl ist {number}.")
Ausgabe:
Alices Lieblingszahl ist 7.
Bobs Lieblingszahl ist 42.
Charlies Lieblingszahl ist 13.
Dianas Lieblingszahl ist 3.
Eves Lieblingszahl ist 21.
# 6-3: Glossar
glossar = {
'variable': 'Ein Container für einen Wert',
'list': 'Eine Sammlung von Elementen in einer bestimmten Reihenfolge',
'dictionary': 'Eine Sammlung von Schlüssel-Wert-Paaren',
'function': 'Ein benannter Codeblock, der eine bestimmte Aufgabe erfüllt',
'loop': 'Eine Anweisung, die Code wiederholt ausführt'
}
for begriff, bedeutung in glossar.items():
print(f"{begriff.title()}:")
print(f"\t{bedeutung}\n")
Ausgabe:
Variable:
Ein Container für einen Wert
List:
Eine Sammlung von Elementen in einer bestimmten Reihenfolge
Dictionary:
Eine Sammlung von Schlüssel-Wert-Paaren
Function:
Ein benannter Codeblock, der eine bestimmte Aufgabe erfüllt
Loop:
Eine Anweisung, die Code wiederholt ausführt
user_0 = {
'username': 'efermi',
'first': 'enrico',
'last': 'fermi',
}
# Alle Schlüssel-Wert-Paare
for key, value in user_0.items():
print(f"\nKey: {key}")
print(f"Value: {value}")
# Nur Schlüssel
for name in user_0.keys():
print(name.title())
# Nur Werte
for value in user_0.values():
print(value.title())
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
# Eindeutige Werte mit set()
print("Die folgenden Sprachen wurden genannt:")
for language in set(favorite_languages.values()):
print(language.title())
# Sortierte Schlüssel
for name in sorted(favorite_languages.keys()):
print(f"{name.title()}, thank you for taking the poll.")
→ kapitel_6_aufgaben_6-4_6-6.ipynb
↓ Lösungen
# 6-4: Glossar 2
glossar = {
'variable': 'Ein Container für einen Wert',
'list': 'Eine Sammlung von Elementen',
'dictionary': 'Schlüssel-Wert-Paare',
'function': 'Ein benannter Codeblock',
'loop': 'Wiederholte Code-Ausführung',
'string': 'Eine Folge von Zeichen',
'integer': 'Eine ganze Zahl',
'float': 'Eine Gleitkommazahl'
}
for begriff, bedeutung in glossar.items():
print(f"{begriff.title()}:\n\t{bedeutung}\n")
Ausgabe:
Variable:
Ein Container für einen Wert
List:
Eine Sammlung von Elementen
Dictionary:
Schlüssel-Wert-Paare
Function:
Ein benannter Codeblock
Loop:
Wiederholte Code-Ausführung
String:
Eine Folge von Zeichen
Integer:
Eine ganze Zahl
Float:
Eine Gleitkommazahl
# 6-5: Flüsse
rivers = {
'nil': 'ägypten',
'mississippi': 'vereinigte staaten',
'fraser': 'kanada',
'kuskokwim': 'alaska',
'yangtze': 'china'
}
for river, country in rivers.items():
print(f"Der {river.title()} fließt durch {country.title()}.")
print("\nFlüsse:")
for river in rivers.keys():
print(f"- {river.title()}")
print("\nLänder:")
for country in set(rivers.values()):
print(f"- {country.title()}")
Ausgabe:
Der Nil fließt durch Ägypten.
Der Mississippi fließt durch Vereinigte Staaten.
Der Fraser fließt durch Kanada.
Der Kuskokwim fließt durch Alaska.
Der Yangtze fließt durch China.
Flüsse:
- Nil
- Mississippi
- Fraser
- Kuskokwim
- Yangtze
Länder:
- Alaska
- Ägypten
- China
- Kanada
- Vereinigte Staaten
# 6-6: Umfrage
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
poll_participants = ['jen', 'sarah', 'edward', 'phil', 'alice', 'bob']
for name in poll_participants:
if name in favorite_languages.keys():
print(f"Danke für deine Teilnahme, {name.title()}!")
else:
print(f"{name.title()}, bitte nimm an unserer Umfrage teil!")
Ausgabe:
Danke für deine Teilnahme, Jen!
Danke für deine Teilnahme, Sarah!
Danke für deine Teilnahme, Edward!
Danke für deine Teilnahme, Phil!
Alice, bitte nimm an unserer Umfrage teil!
Bob, bitte nimm an unserer Umfrage teil!
pizza = {
'crust': 'thick',
'toppings': ['mushrooms', 'extra cheese'],
}
print(f"You ordered a {pizza['crust']}-crust pizza "
"with the following toppings:")
for topping in pizza['toppings']:
print(f"\t{topping}")
# Dictionary in Dictionary
users = {
'aeinstein': {
'first': 'albert',
'last': 'einstein',
'location': 'princeton',
},
'mcurie': {
'first': 'marie',
'last': 'curie',
'location': 'paris',
},
}
alien_0 = {'color': 'green', 'points': 5}
alien_1 = {'color': 'yellow', 'points': 10}
alien_2 = {'color': 'red', 'points': 15}
aliens = [alien_0, alien_1, alien_2]
for alien in aliens:
print(alien)
# Aliens automatisch erstellen
aliens = []
for alien_number in range(30):
new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'}
aliens.append(new_alien)
# Erste 5 aliens anzeigen
for alien in aliens[:5]:
print(alien)
→ kapitel_6_aufgaben_6-7_6-12.ipynb
↓ Lösungen
# 6-7: Menschen
person_1 = {'first_name': 'Alice', 'last_name': 'Smith', 'age': 25, 'city': 'Hamburg'}
person_2 = {'first_name': 'Bob', 'last_name': 'Jones', 'age': 30, 'city': 'Berlin'}
person_3 = {'first_name': 'Charlie', 'last_name': 'Brown', 'age': 22, 'city': 'München'}
people = [person_1, person_2, person_3]
for person in people:
full_name = f"{person['first_name']} {person['last_name']}"
print(f"Name: {full_name}")
print(f"Alter: {person['age']}")
print(f"Stadt: {person['city']}\n")
Ausgabe:
Name: Alice Smith
Alter: 25
Stadt: Hamburg
Name: Bob Jones
Alter: 30
Stadt: Berlin
Name: Charlie Brown
Alter: 22
Stadt: München
# 6-8: Haustiere
pet_1 = {'name': 'willie', 'kind': 'dog', 'owner': 'alice'}
pet_2 = {'name': 'fluffy', 'kind': 'cat', 'owner': 'bob'}
pet_3 = {'name': 'tweety', 'kind': 'bird', 'owner': 'charlie'}
pets = [pet_1, pet_2, pet_3]
for pet in pets:
print(f"{pet['name']} ist ein {pet['kind']} und gehört {pet['owner']}.")
Ausgabe:
willie ist ein dog und gehört alice.
fluffy ist ein cat und gehört bob.
tweety ist ein bird und gehört charlie.
# 6-9: Lieblingsplätze
favorite_places = {
'alice': ['paris', 'tokyo', 'new york'],
'bob': ['london', 'rome'],
'charlie': ['sydney', 'barcelona', 'amsterdam', 'prague']
}
for name, places in favorite_places.items():
print(f"\n{name.title()}s Lieblingsplätze:")
for place in places:
print(f"\t- {place.title()}")
Ausgabe:
Alices Lieblingsplätze:
- Paris
- Tokyo
- New York
Bobs Lieblingsplätze:
- London
- Rome
Charlies Lieblingsplätze:
- Sydney
- Barcelona
- Amsterdam
- Prague
# 6-10: Lieblingszahlen (mehrere)
favorite_numbers = {
'alice': [7, 13, 21],
'bob': [42, 8],
'charlie': [3, 9, 15, 27]
}
for name, numbers in favorite_numbers.items():
print(f"\n{name.title()}s Lieblingszahlen:")
for number in numbers:
print(f"\t{number}")
Ausgabe:
Alices Lieblingszahlen:
7
13
21
Bobs Lieblingszahlen:
42
8
Charlies Lieblingszahlen:
3
9
15
27
# 6-11: Städte - Dictionary Definition
cities = {
'hamburg': {
'country': 'deutschland',
'population': 1900000,
'fact': 'Größter Hafen Deutschlands'
},
'paris': {
'country': 'frankreich',
'population': 2200000,
'fact': 'Stadt der Liebe'
},
'tokyo': {
'country': 'japan',
'population': 14000000,
'fact': 'Größte Metropolregion der Welt'
}
}
# Dictionary durchlaufen und formatiert ausgeben
for city, info in cities.items():
print(f"\n{city.title()}:")
print(f"\tLand: {info['country'].title()}")
print(f"\tBevölkerung: {info['population']:,}")
print(f"\tFakt: {info['fact']}")
Ausgabe:
Hamburg:
Land: Deutschland
Bevölkerung: 1,900,000
Fakt: Größter Hafen Deutschlands
Paris:
Land: Frankreich
Bevölkerung: 2,200,000
Fakt: Stadt der Liebe
Tokyo:
Land: Japan
Bevölkerung: 14,000,000
Fakt: Größte Metropolregion der Welt
# 6-12: Erweiterungen
# Erweiterung von vorherigen Übungen
print("Aufgabe 6-12: Erweiterungen bereits in den vorherigen Aufgaben umgesetzt.")
Ausgabe:
Aufgabe 6-12: Erweiterungen bereits in den vorherigen Aufgaben umgesetzt.
# Gut
age = person.get('age', 0)
for name in sorted(people.keys()):
print(name)
# Vermeiden
age = person['age'] # KeyError möglich