Hallo,
gibt es in python oder wxpython eine möglichkeit eine dynamische verketteteliste anzulegen, welche mehrere listen mit folgenden stringdaten ['ip', 'gateway, hostname',....] speichert?
ich sende eine broadcastnachricht übers netzwerk und jenachdem wieviele gerade im netzwerk sind (2 oder 5, oder 50), bekomme ich von jedem einzelnen gerät konfigdaten zugeschickt.
eine verketteteliste, die die einzelnen hostdaten in einem objekt speichert wäre sehr nett..
vielen dank...
Verkettete Liste für Listen ['ip', 'gateway, hostname',....]
@piwi: Warum muss das jetzt unbedingt eine verkettete Liste sein? Tut nicht auch eine ganz normale?
muss nicht unbedingt eine verketteteliste sein.mir geht es nur darum, dass wenn z.b. 10 hosts eine antwort schicken, muss ich die daten lokal speichern.d.h. jeder host schickt als antwort auf die broadcast message sein konfigurationdaten:
host1: ['ip', 'gateway, hostname',....]
host2: ['ip', 'gateway, hostname',....]
....
....
....
host10:['ip', 'gateway, hostname',....]
die einzelen listen (['ip', 'gateway, hostname',....] ) muss ich lokal im speicher ablegen und in einer wxTreeCtrl darstellen.
wenn nun der nutzer zwischen den Tree Elementen umschaltet, soll die konfiguration des jeweiligen hosts angezeigt werden. dazu wolle ich eine verkettete liste anlegen, um die jeweilige konfigliste (['ip', 'gateway, hostname',....] ) des host zu laden.
in c könnte ich z.b. ein 2d array erstellen: char daten[][]
oder ich erstelle einfach eine datei wo ich die elemente zwischenspeichere
host1: ['ip', 'gateway, hostname',....]
host2: ['ip', 'gateway, hostname',....]
....
....
....
host10:['ip', 'gateway, hostname',....]
die einzelen listen (['ip', 'gateway, hostname',....] ) muss ich lokal im speicher ablegen und in einer wxTreeCtrl darstellen.
wenn nun der nutzer zwischen den Tree Elementen umschaltet, soll die konfiguration des jeweiligen hosts angezeigt werden. dazu wolle ich eine verkettete liste anlegen, um die jeweilige konfigliste (['ip', 'gateway, hostname',....] ) des host zu laden.
in c könnte ich z.b. ein 2d array erstellen: char daten[][]
oder ich erstelle einfach eine datei wo ich die elemente zwischenspeichere
Hallo!
Dann willst du wohl eher ein Dictionary. Falls du es noch nicht getan haben solltest, dann schaue dir dazu mal die Abschnitte im Tutorial an. In Python kannst du Listen beliebig lang erweitern, du musst dich also nicht darum kümmern wie die Implementierung aussieht.
Für das Problem würde ich allerdings auf Listen verzichten und die folgende Struktur wählen:
Die Tupel könntest du auch durch Dictionaries ersetzen, dann können beliebige Zusatzinformationen gespeichert werden.
Sebastian
Dann willst du wohl eher ein Dictionary. Falls du es noch nicht getan haben solltest, dann schaue dir dazu mal die Abschnitte im Tutorial an. In Python kannst du Listen beliebig lang erweitern, du musst dich also nicht darum kümmern wie die Implementierung aussieht.
Für das Problem würde ich allerdings auf Listen verzichten und die folgende Struktur wählen:
Code: Alles auswählen
spam = {
host0: ("ip", "gateway", ...),
host1: ("ip", "gateway", ...),
...
}
Sebastian
Das Leben ist wie ein Tennisball.
Ohne jetzt in die Quellen des Python-Interpreters geguckt zu haben, bin ich trotzdem überzeugt, daß die Listen in Python dynamische verkettete Listen sind.piwi hat geschrieben:gibt es in python oder wxpython eine möglichkeit eine dynamische verketteteliste anzulegen, welche mehrere listen mit folgenden stringdaten ['ip', 'gateway, hostname',....] speichert?
Du brauchst sie also nicht mehr selbst zu implementieren, sondern sie nur noch zu benutzen.
Auch Listen von Listen sind ohne weiteres möglich:
Code: Alles auswählen
a = [["a", "b"], ["c", "d"], ["e", "f"]]
Das ist ja gerade das Tolle an Python!
Gruß
Da wirf doch noch mal einen Blick in den Codeproblembär hat geschrieben:Ohne jetzt in die Quellen des Python-Interpreters geguckt zu haben, bin ich trotzdem überzeugt, daß die Listen in Python dynamische verkettete Listen sind.

Das ändert natürlich nichts daran, dass man in Python keine verketteten Listen braucht, da die eingebauten (meistens) vollkommen ausreichen.
Das Leben ist wie ein Tennisball.
Klar braucht man die, ebenso wie collections.deque seine Daseinsberechtigung hat. Bloß dass meist halt eine normale Liste reicht. Die richtige Datenstruktur für das Problem zu benutzen kann u.U. mehr bringen als einfach nur von Python auf C umzusteigen.EyDu hat geschrieben:Das ändert natürlich nichts daran, dass man in Python keine verketteten Listen braucht, da die eingebauten (meistens) vollkommen ausreichen.
@EyDu
ganau das ist es was ich gesucht habe.
eine Liste in einer Liste zu speichern.
hier das ergebnis:
[
['PC ', '00:04:A3:00:00:01', ''],
['192.168.0.250', '255.255.255.0', '192.168.0.1', 'PC ', '00:04:A3:21:25:0E', '1', '192.168.0.100', '10000', '10005', '1000', '1001', '2000', '2001', '3000', '3001', '4000', '4001', '1.1.8', '']
]
oft muss ich bei python noch ein bisl umdenken, da ich aus der c,c++ ecke komme und sonst eigentlich zu 90% Firmware für eingebettete Systeme entwickle...
vielen dank für eure hilfe..
schönen gruß
piwi
www.pi-embedded.de
ganau das ist es was ich gesucht habe.
eine Liste in einer Liste zu speichern.
hier das ergebnis:
[
['PC ', '00:04:A3:00:00:01', ''],
['192.168.0.250', '255.255.255.0', '192.168.0.1', 'PC ', '00:04:A3:21:25:0E', '1', '192.168.0.100', '10000', '10005', '1000', '1001', '2000', '2001', '3000', '3001', '4000', '4001', '1.1.8', '']
]
oft muss ich bei python noch ein bisl umdenken, da ich aus der c,c++ ecke komme und sonst eigentlich zu 90% Firmware für eingebettete Systeme entwickle...
vielen dank für eure hilfe..
schönen gruß
piwi
www.pi-embedded.de
Zuletzt geändert von piwi am Donnerstag 21. Januar 2010, 09:21, insgesamt 1-mal geändert.
- mkesper
- User
- Beiträge: 919
- Registriert: Montag 20. November 2006, 15:48
- Wohnort: formerly known as mkallas
- Kontaktdaten:
piwi: Kommt es dir auf die Reihenfolge an?
Musst du häufig nach einzelnen Elementen suchen?
Wenn es auf die Reihenfolge nicht ankommt, du dafür aber nach deinem "Host" suchen musst, dann solltest du ein Dictionary verwenden. Listen müssen sequentiell durchsucht werden, bei Dictionaries wird anhand eines Hashwertes gesucht, d.h. es geht bei vielen Einträgen wesentlich schneller.
Musst du häufig nach einzelnen Elementen suchen?
Wenn es auf die Reihenfolge nicht ankommt, du dafür aber nach deinem "Host" suchen musst, dann solltest du ein Dictionary verwenden. Listen müssen sequentiell durchsucht werden, bei Dictionaries wird anhand eines Hashwertes gesucht, d.h. es geht bei vielen Einträgen wesentlich schneller.
@mkesper
ne, auf die reihenfolge kommt es mir nicht an.
eventuell müsste ich nach nach elementen suchen, wenn ich konfigdaten ändere und dann an den host wieder zurückschicke.
dann erstelle ich doch lieber mal ein dictionary...
ne, auf die reihenfolge kommt es mir nicht an.
eventuell müsste ich nach nach elementen suchen, wenn ich konfigdaten ändere und dann an den host wieder zurückschicke.
dann erstelle ich doch lieber mal ein dictionary...