Aufgaben

Aufgabe: Objekte und Referenzen visualisieren

Visualisieren Sie die beim Ablauf der folgenden Programme erzeugten Objekte und Referenzen mit Kästen und Pfeilen und geben Sie jeweils die Ausgabe des Programms an.

Hinweis: Die vordefinierte Methode reverse mutiert Listen genau so wie die von uns definierte gleichnamige Prozedur.

# 1. Programm
def test(a,b):
  a.reverse()
  print(a)
  print(b)
  print(a == b)
  return a is b

x = [1,2,3]
print(test(x,x))
print(test(x,[1,2,3]))

# 2. Programm
nums = [1,2,3]
lists = [nums,[1,2,3]]
nums = [4,5,6]
lists[1] = lists[0]
nums = lists[1]
nums[0:3] = [7,8,9]
print(lists[0][0])

Aufgabe: Mutation von Listen programmieren

Definieren Sie eine Prozedur replace mit drei Parametern a, b, und c, die die Liste a mutiert. In der Liste a sollen dabei alle Vorkommen der Teilliste in b durch die Liste in c ersetzt werden. Verwenden Sie dazu keine vordefinierten mutierenden Methoden. Schreiben Sie mit Hilfe der definierten Prozedur ein Programm, das alle Vorkommen der Zahlenfolge 1,2,3 in der Liste [1,2,3,4,1,2,1,2,3,4] durch die Zahl 123 ersetzt und das Ergebnis [123,4,1,2,123,4] ausgibt.