Sequenzen
Sequenzen sind lineare Folgen von Objekten mit einer eindeutig festgelegten
Reihenfolge. Es gibt folgende Typen:
Text
Ein Text ist eine Folge von Zeichen. Er ist nicht änderbar.
Tupel
Ein Tupel ist eine (eventuell auch leere) Folge von Objekten nicht not-
wendigerweise gleichen Typs. Ein Tupel ist nicht änderbar. Beispiele:
tupel1 = (1, 2, 3)
tupel2 = (1, '2.0', 3.0)
tupel3 = ('a',) # Für ein ein-elementiges Tupel muss der Klarheit halber
# dem Element ein Komma folgen.
tupel4 = () # Dies ist ein leeres Tupel. Es darf kein Komma enthalten.
Listen
Eine Liste ist -- wie ein Tupel -- eine (eventuell auch leere) Folge von
Objekten nicht notwendigerweise gleichen Typs. Listen können jedoch
verändert werden und zwar können einzelne Elemente ersetzt, hinzugefügt,
entfernt oder die Liste als ganzes sortiert werden. Beispiele:
liste1 = [1, 2, 3]
liste2 = [1, '2.0', 3.0]
liste3 = ['a'] # eine ein-elementige Liste
liste4 = [] # eine leere Liste
An Listen können Objekte angehängt, an einer bestimmten Stelle eingefügt,
der Index des ersten Auftretens eines Elementes gesucht werden, man kann
feststellen, wie oft ein Element in einer Liste vorkommt, man kann die
Listenreihenfolge umdrehen sowie einzelne Elemente entfernen.
Zugriffe auf Sequenzen
Indizierung
Auf Sequenzelemente kann über einen Index zugetriffen werden. Er wird wie
bei Reihungen üblich in eckige Klammern eingeschlossen. Die Nummerierung
beginnt bei Null.
text = 'Emil'
print 'Das dritte Zeichen von %s ist' % text, text[2]
Dies gilt nicht nur für Textvariable:
print 'Das fünfte Zeichen von "Kaffeekanne" ist', 'Kaffeekanne'[4]
print 'Das zweite Element von %s ist' % liste2, liste2[1]
Der Zugriff ist aber auch durch eine Indizierung vom Ende aus möglich:
print 'Das letzte Element von %s ist' % (tupel2,), tupel2[-1]
print 'Das vorletzte Element von %s ist' % text, text[-2]
print
Anzahl
Die Anzahl der Elemente ist feststellbar über "len ":
print 'Der Text %s hat %d Zeichen' % (text, len(text))
print 'Die Liste %s hat %d Elemente' % (liste2, len(liste2))
print 'Das Tupel %s hat %d Elemente' % (tupel4, len(tupel4))
print
Ausschnitte
Durch Angabe von zwei Indizes wird als neues Objekt eine Kopie des
bezeichneten Teiles geliefert. Der Ausschnitt beginnt beim ersten Index
und endet vor dem zweiten.
print '"\'Kaffeekanne\'[3:7]\" liefert', 'Kaffeekanne'[3:7]
print '"\'Kaffeekanne\'[3:-3]\" liefert', 'Kaffeekanne'[3:-3]
print '"\'Kaffeekanne\'[9:7]\" liefert', 'Kaffeekanne'[9:7]
print '"\'Kaffeekanne\'[-3:-7]\" liefert', 'Kaffeekanne'[-3:-7]
print '"\'Kaffeekanne\'[-7:-3]\" liefert', 'Kaffeekanne'[-7:-3]
print
Es kann auch einer der beiden Grenzindizes wegfallen. Dann gilt das erste
bzw.das letzte Element als Grenze. Fallen beide weg, so bekommt man eine
identische Kopie der Sequenz (nicht nur einen Verweis!).
print '"\'Kaffeekanne\'[:7]\" liefert', 'Kaffeekanne'[:7]
print '"\'Kaffeekanne\'[7:]\" liefert', 'Kaffeekanne'[7:]
print '"\'Kaffeekanne\'[:]\" liefert', 'Kaffeekanne'[:]
print
Der Operator "in " prüft das Enthaltensein
in einer Sequenz.
if 'c' in 'Boris Becker':
print 'drin'
if not 3 in tupel2:
print 'nicht drin'
else:
print 'drin'
if 3.0 not in tupel2:
print 'nicht drin'
else:
print 'drin'
Der Operator "+ " fügt Sequenzen zusammen,
der Operator "* " vervielfacht sie:
print (1, 2) + (3, 4) + 3 * (5,)
print [1, 2] + [3, 4] + [5] * 3
print 'Sto-' + 5 * 't-' + 'ern'
print
Es gibt Minumum- und Maximum-Prozeduren:
print 'Das kleinste Element aus %s ist' % liste2, min(liste2)
print 'Das größte Element aus "Kaffeekanne" ist', max('Kaffeekanne')
print
|