Problem bei array erstellung und Befüllung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
RcReese
User
Beiträge: 8
Registriert: Donnerstag 21. November 2019, 18:15

Hallo, ich bin noch relativ unerfahren mit Python und habe jetzt ein kleines Problem mit arrays.

Ich möchte ein array erstellen bei dem ich am Anfang nich nicht weiß wieviele Einträge es besitzen wird. Dann soll dieses array nach und nach durch eine if-Abfrage von anderen arrays befüllt werden. Ich habe es folgendermaßen versucht:

Code: Alles auswählen

a =[]
for j in range (0,42):
    if zone_percentage[j]!=0:
        a=zone_names[j]
Die if-Abfrage funktioniert auch soweit nur dass eben bei jedem durchlauf das a überschrieben wird und so nur ein Eintrag übrig bleibt anstatt dass ein Array entsteht.

Mein Ansatz war dann:

Code: Alles auswählen

a =[]
i=0
for j in range (0,42):
    if zone_percentage[j]!=0:
        a[i]=zone_names[j]
        i+1
Das führte allerdings nur zu einer Fehlermeldung, da die Schreibweise a wohl falsch ist.

Hoffe man versteht was ich meine.

Vielen Dank im Voraus.
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

Ich weiß nicht, von welcher Programmiersprache Du kommst, aber in Python arbeitet man anders. Man iteriert direkt über die Elemente einer Liste, statt über einen Index und man fängt mit einer leeren Liste an und hängt Elemente mit append an:

Code: Alles auswählen

a = []
for percentage in zone_percentage:
    if percentage:
        a.append(percentage)
Hier kann man auch eine sogenannte List-Comprehension einsetzen:

Code: Alles auswählen

a = [p for p in zone_percentage if p]
Zuletzt geändert von Sirius3 am Donnerstag 21. November 2019, 18:39, insgesamt 1-mal geändert.
nezzcarth
User
Beiträge: 1634
Registriert: Samstag 16. April 2011, 12:47

RcReese hat geschrieben: Donnerstag 21. November 2019, 18:23 Hallo, ich bin noch relativ unerfahren mit Python und habe jetzt ein kleines Problem mit arrays.
Das Gezeigte wird in Python nicht als Array sondern als Liste bezeichnet. Das ist einmal wichtig, weil es in der Python Standardbibliothek auch 'arrays' gibt, die so heißen (die man aber vergleichsweise selten benötigt) und hier auch, weil dann vielleicht klarer wird, wie du vorgehen musst: An Listen kann man etwas anhängen, mit der gezeigten Methode "append". Du bindest stattdessen bei jeder Iteration einen einzelnen Wert an den Namen 'a'.
Antworten