Geschachtelte For-Loops#

In Python kann man so gut wie alles schachteln - auch For-Loops. Wir können innerhalb eines For-Loops also noch einen For-Loop starten. Den Inhalt dieses zweiten For-Loops muss man damm dementsprechend noch eine Ebene weiter einrücken.

Im untigen Beispiel sieht man zwei geschachtelte For-Loops. Der erste For-Loop looped dabei über das range-Objekt range(3) und führt in jeder Runde einen weiteren For-Loop aus, welcher jedes mal komplett über die Liste population looped.

population = ["agent1", "agent2", "agent3"]

for tick in range(3):
    for agent in population:
        print("Zeitschritt:", tick, "///", "Handelnder Agent:", agent)
Zeitschritt: 0 /// Handelnder Agent: agent1
Zeitschritt: 0 /// Handelnder Agent: agent2
Zeitschritt: 0 /// Handelnder Agent: agent3
Zeitschritt: 1 /// Handelnder Agent: agent1
Zeitschritt: 1 /// Handelnder Agent: agent2
Zeitschritt: 1 /// Handelnder Agent: agent3
Zeitschritt: 2 /// Handelnder Agent: agent1
Zeitschritt: 2 /// Handelnder Agent: agent2
Zeitschritt: 2 /// Handelnder Agent: agent3

Theoretisch kann man beliebig viele For-Loops ineinander schachteln. Beachten muss man dabei v.a. die verschiedenen Einrück-Level des Codes, da diese anzeigen, welcher Code zu welchem For-Loop gehört. Unten füge ich z.B. noch eine Code-Zeile hinzu. Aufgrund des Einrück-Levels wird diese Zeile zwar als Zeil des äußeren For-Loops gelesen, nicht aber als Teil des inneren For-Loops.

population = ["agent1", "agent2", "agent3"]

for tick in range(3):
    for agent in population:
        print("Zeitschritt:", tick, "///", "Handelnder Agent:", agent)
    print("#####################")
Zeitschritt: 0 /// Handelnder Agent: agent1
Zeitschritt: 0 /// Handelnder Agent: agent2
Zeitschritt: 0 /// Handelnder Agent: agent3
#####################
Zeitschritt: 1 /// Handelnder Agent: agent1
Zeitschritt: 1 /// Handelnder Agent: agent2
Zeitschritt: 1 /// Handelnder Agent: agent3
#####################
Zeitschritt: 2 /// Handelnder Agent: agent1
Zeitschritt: 2 /// Handelnder Agent: agent2
Zeitschritt: 2 /// Handelnder Agent: agent3
#####################