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
gruppe1
undgruppe2
.
Aufgabe 2#
Füge in
gruppe1
die Zahlen 4, 6 und 8 mittels der Funktionappend()
hinzu.
Aufgabe 3#
Füge in
gruppe2
die 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
gruppe1
mittels 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
gruppe2
an der ersten Position (!) vongruppe1
ein und lösche diesen ausgruppe2
.
Aufgabe 8#
Erstelle eine Gesamtliste
population
, welche alle Agenten ausgruppe1
undgruppe2
enthält.
Aufgabe 9#
Speichere die ersten 5 Agenten der Liste
population
in 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?