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']}")
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 favorite number is {number}.")
Alice's favorite number is 7.
Bob's favorite number is 42.
Charlie's favorite number is 13.
Diana's favorite number is 3.
Eve's favorite number is 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")
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")
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"The {river.title()} runs through {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()}")
The Nil runs through Ägypten.
The Mississippi runs through Vereinigte Staaten.
The Fraser runs through Kanada.
The Kuskokwim runs through Alaska.
The Yangtze runs through 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"Thank you for participating, {name.title()}!")
else:
print(f"{name.title()}, please take our poll!")
Thank you for participating, Jen!
Thank you for participating, Sarah!
Thank you for participating, Edward!
Thank you for participating, Phil!
Alice, please take our poll!
Bob, please take our poll!
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")
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']} is a {pet['kind']} owned by {pet['owner']}.")
willie is a dog owned by alice.
fluffy is a cat owned by bob.
tweety is a bird owned by 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 favorite places:")
for place in places:
print(f"\t- {place.title()}")
Alice's favorite places:
- Paris
- Tokyo
- New York
Bob's favorite places:
- London
- Rome
Charlie's favorite places:
- 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 favorite numbers:")
for number in numbers:
print(f"\t{number}")
Alice's favorite numbers:
7
13
21
Bob's favorite numbers:
42
8
Charlie's favorite numbers:
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']}")
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.")
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