Liste setzt sich immer zurück :(

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
Username2.1
User
Beiträge: 1
Registriert: Mittwoch 8. August 2018, 17:59

Hallo zusammen,

leider ist mir kein besserer Betreff eingefallen.^^
Was ich vorhabe ist das ich die erhaltene Daten die ich in Python bekomme, in eine Liste verpacke (bzw. siehe weiter unten *1).
Ich erhalte z.B. von 3 verschiedene Sensoren Daten gleichzeitig.
Nun möchte ich die Daten trennen und jeden Wert in die dazu gehörige Liste packen, bis in der Liste 10 Werte drin sind und dann diese weiter schicke.
Ich dachte mir mit:
List = [ ]
List.append([value[0])

wäre es mehr oder weniger getan nur leider hab ich bemerkt das sich in der Liste sich immer nur der aktuelle Wert drinnen steht und nicht die anderen 9 Werte auch.
Logisch da das Programm ja wieder von oben anfängt und die Liste bei: List = [ ] eine neue leere Liste generiert.
Gibt es da nicht irgendetwas das er es nur macht wenn es Notwendig ist, aber mit einen IF-Block Funktioniert ja das auch wieder nicht da das ganze Spiel wieder von vorne beginnt nur mit einer anderen Variable.
Von mir aus muss es gar nicht eine Liste sein da es eigentlich ein String werden soll nur die neuen Werte sollen immer wieder an den String angereiht werden. Bis endlich 10 Werte in den String vorhanden sind.
Der String oder die Liste sollte dann ungefähr so aussehen:
"1;2;3;4;5;6;7;8;9;10"
(Werte weichen jetzt mal ab aber um die soll es nun grad nicht gehen)

(*1:)
Ich möchte eigentlich nur wissen wie ich am besten die Werte die ich bei jeden neuen Durchlauf des Programms erhalte an einander reihen kann.
Der einzige Weg der mir momentan eingefallen wäre ist es in ein Textfile zu schreiben und dann wieder es leere wenn die 10 Werte drin stehen.
Finde das aber nicht wirklich schön es muss ja eine schönere Lösung dafür geben oder doch nicht?

Ich benutz Python2.7.9

MfG :)

Username2.1
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wenn du Daten jenseits der Laufzeit eines Programms aufbewahren willst, dann wirst du sie wohl oder uebel speichern muessen. Eine Art Gedaechtnis hat der Interpreter nicht.

Insofern: ja, du musst eine Datei beschreiben. Aus Gruenden der Einfachheit bietet es sich an, jeden Wert einfach in eine neue Zeile zu schreiben. Und dann kannst du mit datei.readlines() auch bei Bedarf alle Werte wieder einlesen, und die Anzahl bestimmen.
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@Username2.1: statt lang zu erklären, wie Du etwas machst, hilft Code.

Die einfache Antwort ist, die Liste nur am Anfang zu erstellen und nicht innerhalb der Schleife.
Antworten