Python Array um einen Wert erweitern?
Hallo,
ich habe unterschiedliche Arrays und diese sollen immer um einen Wert erweitert werden, nämlich mit 0.
Z.B. hat das Array die Länge 6 und soll nun auf die Länge 7 erhöht werden.
ArrayDavor = ('A', 'B', 'B', 'C', 'A', 'D') ------> ArrayDanach = ('A', 'B', 'B', 'C', 'A', 'D', 0)
Wie mache ich das? :D
8 Antworten
Nun, in Python gibt es eigentlich keine Arrays. Das sind Listen. Insofern gestaltet sich eine Erweiterung auch einfach:
arr = [ 'A', 'B' ]
arr.append(0)
Allerdings würde ich dir nicht gerade empfehlen, die Datentypen in der Liste zu mischen, denn das ist eine potentielle Fehlerquelle, die du dir dabei schaffst. Es ist von da an ja nicht mehr gesichert, dass sich jedes Element in der Liste gleich verhält.
Wenn die Liste bisher nur Strings hielt, sollte sie das besser auch weiter tun.
Mehr als ein funktionales Beispiel, dass ziemlich eindeutig zeigt, dass es funktioniert, kann ich dir nicht geben. Gleiche mit deinem Code ab, du machst offensichtlich etwas anderes.
ArrayDavor = ('A', 'B', 'B', 'C', 'A', 'D')
Das ist kein "Array", das ist ein Tupel. Ein Tupel ist unveränderlich - du kannst also nur ein neues Tupel bauen und dem bestehenden Namen zuordnen, aber kein bestehendes erweitern:
>>> foo = (1, 2, 3, 4)
>>> foo = foo + (5, 6)
>>> foo
(1, 2, 3, 4, 5, 6)
Oder du verwendest stattdessen eine Liste, dann funktioniert auch das hier bereits mehrfach erwähnte .append().
ArrayDanach = ArrayDavor + [0] // dann gibt es zwei Arrays
Oder
ArrayDavor.append(0) // hängt direkt an
>>> l=['A','B','C','D']
>>> l
['A', 'B', 'C', 'D']
>>> l.append(0)
>>> l+='F'
>>> l
['A', 'B', 'C', 'D', 0, 'F']
mehr in der Dokumentation zu listen.
ArrayDavor = ('A', 'B', 'B', 'C', 'A', 'D')
Das ist ein Tuple, die können nicht verändert werden.
Entweder so:
ArrayDavor = ('A', 'B', 'B', 'C', 'A', 'D')
ArrayDavor += 0,
oder du wandelst dein Tuple in eine Liste um und nutzt append:
ArrayDavor = ('A', 'B', 'B', 'C', 'A', 'D')
l=list(ArrayDavor)
l.append(0)
ArrayDavor=tuple(l)
Ne, funktioniert so nicht.