Geschachtelte For-Loops
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
#####################