Python - "Struct Arrays"
Ich würde gerne ein struct für jede Zeile finde ich in einer text-Datei. (Also ja, im Grunde möchte ich, um zu definieren, meinem struct, dann zählt die Zeilen, und füllen meine structs.)
In C++, C#, es ist in Ordnung. Aber ich werde immer verloren in Python.
Meine structs würde wie folgt Aussehen:
struct[0].name = "foo"
struct[0].place = "Shop"
struct[1].name = "bar"
struct[1].place = "Home"
Und so weiter.
(Sorry für die lame Frage, hoffe, dass die Neulinge (wie ich) werden es nützlich finden.)
Natürlich, fühlen Sie sich frei zu Bearbeiten, die Frage (Titel), um die Reale Sache.
InformationsquelleAutor der Frage Shiki | 2011-04-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das ist, was benannte Tupel sind.
http://docs.python.org/dev/library/collections.html#namedtuple-factory-function-for-tuples-with-named-fields
InformationsquelleAutor der Antwort S.Lott
Den Sie erstellen möchten eine Klasse enthält
name
undplace
Felder.Dann würden Sie verwenden eine Liste der Instanzen dieser Klasse.
Siehe auch: Klassen (aus der Python-tutorial).
InformationsquelleAutor der Antwort Matt Ball
Wie über eine Liste von dicts?
Dann können Sie
und so weiter...
Mithilfe Ihrer Probe-Datei:
gibt Sie:
InformationsquelleAutor der Antwort Tim Pietzcker
IIt hängt davon ab, was Sie als Daten.
Wenn alle, die Sie wollen, ist zum speichern von Namen und Orten als string, ich würde vorschlagen:
Einer Liste von namedtuples
[(name="foo", place="Shop"), (name="bar", place="Home")]
InformationsquelleAutor der Antwort Xavier V.
Fast allen Fällen, eine Python-Liste ist Analog zu einem C-array. Python hat eine
array
Modul, aber das ist ein dünner wrapper um die eigentliche C-arrays, so würde ich nicht verwenden, es sei denn, Sie brauchen, um etwas in/von C.Auch eine struct kann leicht als ein Objekt dargestellt. So etwas wie:
Möchtest du dann in einer Schleife durch die Datei, Zeile für Zeile, und füllen Sie:
Damit soll es genug sein der Ausgangspunkt, um Sie zu bewegen und Ihnen helfen zu verstehen, wie die grundlegenden Datei/Klasse/list Operationen.
InformationsquelleAutor der Antwort Nick Presta
Könnten Sie ein dict oder eine kleine Klasse.
InformationsquelleAutor der Antwort Juri Robl
Außerdem würde ich empfehlen, nicht benennen es 'struct' in python-da ist ein python-Modul.
InformationsquelleAutor der Antwort kanaka
InformationsquelleAutor der Antwort vichle
Sehe nicht ein, warum so viel Schmerz
Klasse your_struct():
InformationsquelleAutor der Antwort Priyank Pathak