2.2 Hinterlistige Übungen
Contents
2.2 Hinterlistige Übungen#
Im Folgenden findest du ein paar Trockenübungen zur Liste. Das muss sein, weil der Umgang mit Listen für die Programmierung von ABM einfach sitzen muss. Wir werden in keiner Simulation ohne Listen auskommen. Das wird sich jetzt alles nach mühseliger Handarbeit anfühlen, aber keine Sorge, wenn du jetzt das Prinzip von Listen verstehst, dann kannst du später die meisten Listenzugriffe per Loop automatisieren und dich zurücklehnen.
Verwende während den Übungen immer wieder die Funktion print(), die Konsole oder den Variablenexplorer in Spyder, um dir den aktuellen Zustand deiner Variablen/Objekte anzeigen zu lassen. So erkennst du schnell, wenn etwas falsch läuft.
Aufgabe 1#
Erstelle zwei leere Listen namens
gruppe1undgruppe2.
Aufgabe 2#
Füge in
gruppe1die Zahlen 4, 6 und 8 mittels der Funktionappend()hinzu.
Aufgabe 3#
Füge in
gruppe2die Zahlen 1, 3 und 8 mittels der Funktioninsert()oder der Funktionextend()hinzu.
Aufgabe 4#
Jede Zahl in den Listen gruppe1 und gruppe2 steht jeweils für einen Agenten bzw. die Meinung eines Agenten auf einer Skala von 0 bis 10.
Berechne jeweils die durchschnittliche Meinung der Gruppe und speichere diese unter beliebigen Variablennamen ab. Tipp: Die Funktionen
sum()undlen()können dir dabei behilflich sein.
Aufgabe 5#
Lasse dir den Wert des ersten Agenten aus
gruppe1mittels Listenindizierung ausgeben.
Aufgabe 6#
Der erste und der zweite Agent aus gruppe2 unterhalten sich. Der erste Agent überzeugt den zweiten Agenten. Dadurch verändert sich die Meinung des zweiten Agenten. Die Meinung des zweiten Agenten setzt sich nun zu 60% aus dessen ursprünglicher Meinung und zu 40% aus der Meinung des ersten Agenten zusammen.
Berechne die neue Meinung des zweiten Agenten aus
gruppe2. Verwende während den Berechnungen Listenindizierung. Achte darauf, dass du keinen Agenten ausgruppe1überschreibst!
Aufgabe 7#
Dem dritten Agenten aus gruppe2 wird es in gruppe2 zu bunt, weshalb er in gruppe1 überwechseln möchte.
Füge mit einem beliebigen Vorgehen den dritten Agenten aus
gruppe2an der ersten Position (!) vongruppe1ein und lösche diesen ausgruppe2.
Aufgabe 8#
Erstelle eine Gesamtliste
population, welche alle Agenten ausgruppe1undgruppe2enthält.
Aufgabe 9#
Speichere die ersten 5 Agenten der Liste
populationin einer Liste namensfirst_five_agents. Verwende dabei Slicing.
Aufgabe 10#
Angenommen wir wollen per Indizierung auf das letzte Element einer Liste zugreifen, wissen aber zunächst nicht, wie viele Elemente sich in der Liste befinden.
Welche zwei Lösungswege fallen dir ein, um auf das letzte Element einer Liste zuzufgreifen?