103
4.10
Sequenzen
Was ist der Unterschied zwischen Listen und Tupeln? Listen kann man verändern, Tupel
aber nicht. Zum Beispiel können Sie an eine Liste ein neues Element anhängen.
Das geht bei einem Tupel nicht, denn es ist unveränderbar.
4.10.5 Bytearray
Ein Bytearray ist eine Liste aus Zahlen zwischen 0 und 255. Sie erzeugen ein Bytearray mit
der Standardfunktion
bytearray(). Als Argument können Sie eine Liste mit Zahlen über-
geben:
Das Literal für ein Bytearray beginnt mit
bytearray. Dahinter steht in Klammern das Literal
eines Bytestrings. Die Elemente des Bytearrays werden (wie beim Bytestring) nach Möglich-
keit als ASCII-Zeichen dargestellt.
Ein Bytearray ist änderbar. Das ist der Unterschied zum Bytestring. Sie können z.B. ein Byte-
array verlängern und einzelne Elemente überschreiben.
4.10.6 Einige Grundoperationen für Sequenzen
Zugriff auf Elemente
Man kann auf ein einzelnes Element zugreifen, indem man hinter dem Namen der Sequenz
in eckigen Klammern den Index angibt. Beispiele:
>>> s[0]
[1, 2, 3]
>>> s = [1, 2, 3]
>>> s.append(4)
>>> s
[1, 2, 3, 4]
>>> b = bytearray([100, 101, 102, 104])
>>> b
bytearray(b'defh')
>>> b = bytearray([100, 101, 102, 104])
>>> b.append(105)
>>> b
bytearray(b'defhi')
>>> b[0] = 106
>>> b
bytearray(b'jefhi')
Kapitel 4
Standard-Datentypen
104
Verwendet man negative Indexe, so wird von hinten gezählt. Ist s der Name einer Sequenz,
so bezeichnet
s[-1] das letzte Element, s[-2] das vorletzte usw.
Konkatenation
Sequenzen gleichen Datentyps können konkateniert, das heißt aneinandergehängt werden.
Als Konkatenationsoperator wird das Pluszeichen
+ verwendet. Beispiele:
Sequenzen unterschiedlicher Datentypen können nicht konkateniert werden. So kann ein
String nicht an eine Liste angehängt werden.
Wenn man die Liste
['König', 'Dame'] um das Element 'Bauer' erweitern will, kann
man sie mit einer zweiten Liste konkatenieren, die den String
'Bauer' als Element enthält:
>>> a = ('rot', 'gelb', 'grün')
>>> a[1]
'gelb'
>>> "Morgenrot"[0]
'M'
>>> primzahlen = [2, 3, 5, 7, 11, 13, 17]
>>> primzahlen[2]
5
>>> "Morgenrot"[-1]
't'
>>> [1, 2, 3] + [4]
[1, 2, 3, 4]
>>> rot = ('Karo', 'Herz')
>>> schwarz = ('Pik', 'Kreuz')
>>> farben = schwarz + rot
>>> farben
('Pik', 'Kreuz', 'Karo', 'Herz')
>>> ['König', 'Dame'] + 'Bauer'
Traceback (most recent call last):
File "<pyshell#11>", line 1, in ?
['König', 'Dame'] + 'Bauer'
TypeError: can only concatenate list (not "str") to list
>>> ['Koenig', 'Dame'] + ['Bauer']
['Koenig', 'Dame', 'Bauer']
105
4.10
Sequenzen
Vervielfältigung
Mithilfe des Multiplikationsoperators * werden Sequenzen vervielfältigt. Seien s eine
Sequenz beliebigen Typs und
i eine nichtnegative ganze Zahl (Typ int). Dann liefern die
Ausdrücke
s * n und n * s eine neue Sequenz des gleichen Typs wie s, die durch n-maliges
Aneinanderhängen der Sequenz
s gebildet wird. Beispiele:
Bestimmung der Länge einer Sequenz
Im Unterschied zu Zahlen besitzen Sequenzen eine Länge. Die Länge ist die Anzahl der Ele-
mente einer Sequenz. Sie kann mit der Standardfunktion
len() ermittelt werden.
>>> 0*"Hallo"
''
>>> 3*"Hoch! "
'Hoch! Hoch! Hoch! '
>>> ('an', 'aus')*5
('an', 'aus', 'an', 'aus', 'an', 'aus', 'an', 'aus', 'an', 'aus')
>>> 3*[1]
[1, 1, 1]
>>> spruch = """Das, wobei unsere Berechnungen versagen,
nennen wir Zufall. (Einstein)"""
>>> len(spruch)
70
>>> liste = [[1,2,3,4,5,6]] # Das einzige Element ist eine Liste
>>> len(liste)
1
>>> len('') # Eine leere Sequenz hat die Laenge 0
0
>>> len ((1, 2, 3)) # Länge eines Tupels
3
>>> len(123) # Zahlen haben keine Länge
Traceback (most recent call last):
File "<pyshell#55>", line 1, in ?
len(123)
TypeError: len() of unsized object

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.