Thread Arrays zusammenführen/mergen (16 answers)
Opened by styx-cc at 2020-03-13 21:20

Raubtier
 2020-03-14 10:31
#191517 #191517
User since
2012-05-04
1054 Artikel
BenutzerIn

user image
2020-03-13T21:44:35 styx-cc
Ich werde künftig mit exists prüfen.

Aber ob das immer richtig ist? Können die zu mergenden Arrays auch mehrfach reingemerget werden?

Generell würde ich immer dringend davon abraten (!) ein einer Loop über ein Objekt dieses auch (strukturell) zu verändern. Das führt nur zu Problemen und Unklarheiten. Also in einer Loop über ein Array nie Elemente in diesem Array löschen oder in dieses Array hinzufügen (Werte ändern ist ok) und bei einer Loop über einen Hash ebenfalls in der Loop keine Keys (in diesem Hash) löschen oder hinzufügen.

Stattdessen merk dir einfach die zu löschenden Keys und lösche diese, nachdem die Loop beendet ist. Oder bau dir stattdessen eine Funktion, die einen neuen Hash zurückgibt, in dem die zu entfernenden Dinge nicht enthalten sind.

Es mag Ausnahmen geben, die sollten aber gut begründet und kommentiert sein - und vor allem sollte dann extrem stark getestet/sichergestellt sein, dass alles funktioniert. Generell kann sich Hash-Looporder auch mit Perl-Versionen ändern. Nie darauf bauen!

(In (neueren) Pythons ist die dict-Looporder garantiert, d.h. man hat sortierte dictionaries. Von Perl kommend, habe ich mich schon das ein oder andere mal gewundert, warum Python-Code korrekt funktioniert, der darauf aufbaut. Für mich immer noch ein merkwürdiges Konzept, dass die Key-Reihenfolge dort erhalten bleibt)
Last edited: 2020-03-14 10:39:07 +0100 (CET)

View full thread Arrays zusammenführen/mergen