mit Dictonaries

Wir können auch ohne Problem über ein Dict schleifen. Aber wenn wir dies tun, dann schleifen wir nur über die Keys. Hier ein Biespiel:

ages = {
    "marc": 27,
    "leon": 25,
    "david": 29,
    }
    
for name in ages:
    print(name, "is", ages[name], "years old")
marc is 27 years old
leon is 25 years old
david is 29 years old

.values()

Mit der values Funktion bekommen, wir eine Liste von all den Values in einem Dict.

ages = {
    "marc": 27,
    "leon": 25,
    "david": 29,
    }
    
for age in ages.values():
    print("Person is", age, "years old")
Person is 27 years old
Person is 25 years old
Person is 29 years old

.keys()

Mit keys bekommen wir alle Keys von einem Dict als List.

ages = {
    "marc": 27,
    "leon": 25,
    "david": 29,
    }

print(ages.keys())
dict_keys(['marc', 'leon', 'david'])

.items()

items ist super, wenn wir Keys und Values gleichzeitig haben wollen. Vorallem ist dies sehr praktisch bei einer for-Schleife.

ages = {
    "marc": 27,
    "leon": 25,
    "david": 29,
    }

print(ages.items())
dict_items([('marc', 27), ('leon', 25), ('david', 29)])

Wie du sehen kannst, haben wir eine Liste an Tuples, über diese wir jetzt schleifen können.

Apropos das "dict_items" kannst du ignorieren, dass ist nur ein "Wrapper", der für uns jetzt unwichtig ist.
ages = {
    "marc": 27,
    "leon": 25,
    "david": 29,
    }

for entry in ages.items():
    print(entry[0], "is", entry[1], "years old")
marc is 27 years old
leon is 25 years old
david is 29 years old

Es geht aber noch viel einfacher, indem wir zwei Schleifenvariablen beim for-Statement definieren. Diese zwei Variablen werden dann den zwei Werten des Tuples innerhalb der Liste in der selben Reihenfolge zugewiesen. Schaue hier:

ages = {
    "marc": 27,
    "leon": 25,
    "david": 29,
    }

for name, age in ages.items():
    print(name, "is", age, "years old")
marc is 27 years old
leon is 25 years old
david is 29 years old