Python Array um einen Wert erweitern?

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.

shwullidulli 
Fragesteller
 24.06.2021, 20:20

Ne, funktioniert so nicht.

Objekt hat kein Attribut 'append'
0
regex9  24.06.2021, 20:26
@shwullidulli

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.

1
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.

Von Experte MrAmazing2 bestätigt
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)