Hallo Zusammen,
ich bin neu bei PB und habe im Hinterkopf die Möglichkeit, die ich von Python her kenne, ein Dictionary zu erzeugen. Mit einem Key und einem dazu gehörigen Value (Wertepaar) ein Array zu erzeugen.
Nun suche ich sowas ähnliches in PB. Also mehr oder weniger wie ein Assoziatives Array. Habe das was mit LinkedLists gesehen aber irgendwie erschließt sich mir die Benutzung nicht so ganz. Habe irgendwas von einem Index gelesen aber komme nicht ganz dahinter.
Vielleicht kann mir jemand auf die Sprünge helfen.
Grüße
Alen
Array mit Key und Value
- alen
- Beiträge: 107
- Registriert: 09.04.2007 17:38
- Computerausstattung: Main Hardware: AMD Ryzen 5 1600 - 6 Core / Gigabyte B450 Aorus Pro / Sapphire RX580 8GB
PB 5.61 and earlier @ Manjaro Linux XFCE x64/ Fedora Linux Cinnamon x64 / Windows 10 x64 on various Hardware Platforms - Wohnort: Duisburg
- Kontaktdaten:
Re: Array mit Key und Value
Hallo alen,
willkommen im und an Board!
Zu Deiner Frage:
Leider gibt's in PB keine Dictionaries oder (wie auch in anderen Sprachen
vorhanden) Collections. Das musst Du Dir selber zusammenbauen.
Hier die Array-Variante:
und hier mit LinkedLists:
Grüße ... Kiffi
willkommen im und an Board!
Zu Deiner Frage:
Leider gibt's in PB keine Dictionaries oder (wie auch in anderen Sprachen
vorhanden) Collections. Das musst Du Dir selber zusammenbauen.
Hier die Array-Variante:
Code: Alles auswählen
Structure s_KeyValue
Key.s
Value.s
EndStructure
Dim myArray.s_KeyValue(10)
For I = 0 To 10
myArray(I)\Key = "MeinSchlüssel" + Str(I)
myArray(I)\Value = "MeinWert" + Str(I)
Next
For I = 0 To 10
Debug myArray(I)\Key
Debug myArray(I)\Value
Next
Code: Alles auswählen
Structure s_KeyValue
Key.s
Value.s
EndStructure
NewList myLinkedList.s_KeyValue()
For I = 0 To 10
AddElement(myLinkedList())
myLinkedList()\Key = "MeinSchlüssel" + Str(I)
myLinkedList()\Value = "MeinWert" + Str(I)
Next
ForEach myLinkedList()
Debug myLinkedList()\Key
Debug myLinkedList()\Value
Next
a²+b²=mc²
- Froggerprogger
- Badmin
- Beiträge: 855
- Registriert: 08.09.2004 20:02
Die von Kiffi beschriebene Variante ist allerdings im Zugriff nicht so schnell, wie es sein sollte, da das Array linear nach dem Key durchsucht werden muss. (Einfügen: konstante Zeit, Suchen: lineare Zeit)
Man könnte das durch binäre Suche beschleunigen, wenn das Array anhand der Keys sortiert ist. (Einfügen und Suchen: logarithmische Zeit)
Ein assoziatives Array sollte jedoch als Hashtable implementiert sein, damit man konstante Zugriffszeiten beim Einfügen und Suchen erreicht.
Das gibts in PB nicht nativ, aber vielleicht hat ja schon wer Sources dafür veröffentlicht ? (Habe selbst auch noch irgendwo PB-Hashtables rumfliegen, könnte ab nächste Woche Mo mal danach schauen)
Man könnte das durch binäre Suche beschleunigen, wenn das Array anhand der Keys sortiert ist. (Einfügen und Suchen: logarithmische Zeit)
Ein assoziatives Array sollte jedoch als Hashtable implementiert sein, damit man konstante Zugriffszeiten beim Einfügen und Suchen erreicht.
Das gibts in PB nicht nativ, aber vielleicht hat ja schon wer Sources dafür veröffentlicht ? (Habe selbst auch noch irgendwo PB-Hashtables rumfliegen, könnte ab nächste Woche Mo mal danach schauen)
!UD2