Daten in Array oder Liste speichern

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
01detlef
User
Beiträge: 105
Registriert: Montag 10. Mai 2010, 21:59

Hallo,

kann es sein, dass die Abspeicherung das Problem ist? Werden die Listen nicht immer so abgespeichert: [x1,y1,z1],[x2,y2,z2],usw.? Dann kann ich natürlich nicht mit matrix[2][1] ein Element finden, weil bei meinen Test immer gesgat wurde, dass er außerhalb vom Index ist.
So wäre es möglich...
[x1,y1,z1]
[x2,y2,z2]

Ist das mein Problem, dass die Daten hintereinander gespeichert werden? Kann man das umwandeln in meine gewollte Struktur, auch wenn es nicht sinnvoll ist?

detlef
BlackJack

@01detlef: Nochmal: Der Vorschlag von Sirius3 macht das was Du willst! Glaube es einfach bis Du es selber ausprobieren kannst.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

01detlef hat geschrieben: also das die Indizes vllt nicht sinnvoll sind, glaube ich dir alles, aber ich muss das so machen, das steht fest. Es folgt im späteren Programm eine Doppelschleife, um auf die Liste/Matrix zuzugreifen.
Hu? Da stecken aber einige Hämmer drin. Kommt es Dir nicht merkwürdig vor, dass Du eine Sache "machen musst", von der Du selber glaubst, dass die nicht sinnvoll ist? Genau das ist doch der Augenblick an dem man inne halten muss und noch einmal darüber nachdenken sollte, was man eigentlich erreichen will und wie es ggf. besser geht!

Aber insbesondere Satz Nummer zwei zeigt im Kontext des bereits geschriebenen Ignoranz und Unwillen, sich auf Vorschläge einzulassen. Wieso zu Teufel muss man an Stelle "A" Code auf eine Art schreiben, die man an Stelle "B" braucht? Das musst Du uns noch mal erklären :twisted:

Ach ja, den Hinweis zum Dateihandling hast Du auch noch nicht umgesetzt ;-)

Kurz noch der (vermutlich bereits mehrfach geäußerte) Hinweis zum Posten von Quellcode: Wir haben hier spezielle Python-Code-Tags; die sorgen für Syntax Highlighting bei bekannten Sprachen.

[ code=python ] ... [ /code ] - ohne die Leerzeichen.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
01detlef
User
Beiträge: 105
Registriert: Montag 10. Mai 2010, 21:59

Hallo,

also ich MUSS das nicht machen, aber es erspart eine Menge Arbeit, wenn ich das so mache. Dadurch kann der restliche Code unverändert benutzt werden.

Code: Alles auswählen

coordinates = []
fid = open(dateiname)
for line in fid:
    line=line.split()
    if line and line[0].upper()=='GRID':
        coordinates.append(map(float,line[2:]))
fid.close()
Wenn das alles so passt, dann könnte ich doch zum Umwandeln der Liste in eine Matrix folgendes machen (Es geht nur ums Verständnis, nicht nach Sinn urteilend)

Code: Alles auswählen

mat=nump.array(coordinates)
Ist das wenigstens richtig?

detlef
BlackJack

@01detlef: Ja das ist richtig.

Dann stellt sich allerdings die Frage ob man die nachfolgenden Rechnungen nicht auch mit `numpy`-Mitteln anstellen kann, also Python-Schleifen und damit Lauf-Indizes vermeiden, und Operationen auf ganze Arrays anwenden. Dazu ist `numpy` schliesslich gedacht.
Antworten