This is an old revision of the document!
Listen und Arrays
- Liste: Wird mit runden Klammern geschrieben, Liste und direkter Inhalt können nicht verändert werden.
- Array: Wird mit eckigen Klammern geschrieben. Kann verändert werden (Länge und Inhalt).
- Zugriff bei beiden via eckige Klammern, z.B. a[4], Index von 0 bis Anzahl Elemente minus 1.
Wo möglich, mit Listen arbeiten. Ist in vielen Fällen effizienter (Zeit und Speicher).
a = (1,4,9,16) b = [1,4,9,16] print(a[2]) # Liefert 9 b[2]=8 # Eintrag kann verändert werden print(b) a[2]=8 # Fehler bei der Ausführung, Liste kann nicht verändert werden.
Wichtige Funktionen und Methoden
- len: Anzahl Element einer Liste/Array
- Negative Indizies: a[-1] → a[len(a)-1] (letztes Element), a[-2] ist zweitleztes Element etc.
- Unterliste/Array mit a[2:4] → Liste/Array mit den Elementen a[2] und a[3]
- Anfang a[:3] → a[0:3], Ende a[5:] → a[5:len(a)]
Nur für Arrays:
- a.append(5) → zusätzliches Element hinten anfügen
Weitere nützliche Methoden: https://www.w3schools.com/python/python_ref_list.asp
Mehrdimensionale Arrays/Listen
dirs = ((1,0), (0,1), (-1,0), (0,-1)) print dirs[1][1] # Zweite Komponente vom zweiten Array, liefert 1 for d in dirs: print("Vektor (%d, %d)" % d)
Erzeugung von Arrays
quadrate = [i**2 for i in range(20)] print(quadrate) feld = [ [x*y for y in range(1,4)] for x in range(1,4) ] print(feld)
Aufgaben
- Erzeugen Sie ein Array mit gegebener Länge mit den Fibbonacci-Zahlen: [0,1,1,2,3,5,8,13,21,34,…]
- Bilden Sie auf dem Array mit den Fibbonacci-Zahlen ein Array mit den Quotienten zweier aufeinanderfolgenen Fibbonacci-Zahlen
- Erzeugen Sie ein zweidimensionales Array mit dem Pascal-Dreieck und geben Sie dieses “schön” aus.
- Gegeben ist ein String mit lauter unterschiedlichen Buchstaben, z.B. “ABCD”. Erzeugen Sie ein Array mit allen möglichen Permutationen der Buchstaben (d.h. alle möglichen Wörter mit genau diesen 4 Buchstaben). Für “ABC” erhält man dann [“ABC”, “ACB”, “BAC”, “BCA”, “CAB”, “CBA”].
- Challenge: Gegeben ist ein String mit lauter unterschiedlichen Buchstaben, z.B. “BCAED”. Berechnen Sie die lexikographisch nächste Permutation, in diesem Fall “BCDAE”.