Hallo, ich programmiere zwar in Python aber meine Frage geht eher generell in Richtung Hilfe beim Algorithmus verfassen/generelles Vorgehen:
Ich habe eine Klasse Trade_Order, deren Objekte unter Anderem Attribute wie order_id, message_id und tp_type haben. (alle Strings, tp_type wird nur den Wert "tp1" oder "tp2" haben)
Wir fangen mit einer leeren Lsite an, der wir nach und nach Trade_order Objekte hinzufügen.
Aus gottgegebenen Gründen fügen wir aber entweder ein Objekt mit tp_type="tp1" hinzu.
oder wir fügen 2 objekte hinzu, die die selbe Message id haben und wo eins "tp1" und das andere "tp2" hat (das objekt mit "tp2" wird nahc dem "tp1" objekt hinzugefügt.
es kann also nicht vorkommen das snur ein objekt mit "tp2" ohne zugehöriges "tp1" objekt eingefügt wird.
Ausserdem sind die order ids der objekte aufsteigend gemäß hinzufügereihefolge (jedes neu hinzugefügte objekt hat eine order id größer aller anderen order ids in der liste).
Diese gesamtliste nennen wir A.
Nun sei eine liste mit order ids gegeben bzw die mit den ids generierte teilliste von A
nennen wir sie B.
Meine Sache ist nun:
Es kann sein dass in der A Liste 2 zueinander gehörige objekte (gleiche message id, eins "tp1" und eins mit "tp2") vorkommen.
aus gründen aber in der B Liste nur noch das "tp2" objekt drin ist und das "tp1" Objekt fehlt.
Falls so ein Fall vorliegt, will ich (mit den infos aus der A Liste) vom "tp1" objekt den wert einer variable "takeprofit" haben und vom "tp2" Objekt die order id.
Diese 2 sachen werden als tupel in einer neuen Liste gespeichert.
Ausserdem wird in der A liste das "tp1" objekt gelöscht und beim "zp2" objekt eine bestimmte methode mit eben gespeicherten infos ausgeführt
sowie ein attriut angepasst.
kurzum die 2 attribute aus tp1 und tp2 objekt auslesen, tp1 objekt rausschmeissen, tp2 objekt mit jenen infos als parameter aufrufen und dessen attribut anpassen.
Klingt umständlich, ist es auch.
Nun scheitere ich aber dran wie ich mit den gegebenen A und B Listen
1. alle paarweise objekte in der A lsite finde (also gleiche message id, eins hat "tp1" eins hat "tp2"), wo in der B liste nur noch das "tp2" objekt existiert aber nicht mehr das "tp1" objekt.
und dann halt auf den "tp1" und "tp2" objekt die genannten Sachen mache.
Komme auf keinen sinnvolllen listen durhclauf algorithmus, gerade weil ich ja elemente teilweise während der iteration aus der A lsite rausschmeisse und so, komme ich nicht weiter.
Auch ob ich eine oder beide lsite vielleicht erst nahc message id, dann nach "tp1"/"tp2"srtieren sollte um mir das suchen dann leichter zu machen, keine Ahnung.
Verzweifle dran und kann mir im Kopf keine sinnvolle Vorgehensweise denken.
Hat Jemand einen guten Plan?
Ich habe eine Klasse Trade_Order, deren Objekte unter Anderem Attribute wie order_id, message_id und tp_type haben. (alle Strings, tp_type wird nur den Wert "tp1" oder "tp2" haben)
Wir fangen mit einer leeren Lsite an, der wir nach und nach Trade_order Objekte hinzufügen.
Aus gottgegebenen Gründen fügen wir aber entweder ein Objekt mit tp_type="tp1" hinzu.
oder wir fügen 2 objekte hinzu, die die selbe Message id haben und wo eins "tp1" und das andere "tp2" hat (das objekt mit "tp2" wird nahc dem "tp1" objekt hinzugefügt.
es kann also nicht vorkommen das snur ein objekt mit "tp2" ohne zugehöriges "tp1" objekt eingefügt wird.
Ausserdem sind die order ids der objekte aufsteigend gemäß hinzufügereihefolge (jedes neu hinzugefügte objekt hat eine order id größer aller anderen order ids in der liste).
Diese gesamtliste nennen wir A.
Nun sei eine liste mit order ids gegeben bzw die mit den ids generierte teilliste von A
nennen wir sie B.
Meine Sache ist nun:
Es kann sein dass in der A Liste 2 zueinander gehörige objekte (gleiche message id, eins "tp1" und eins mit "tp2") vorkommen.
aus gründen aber in der B Liste nur noch das "tp2" objekt drin ist und das "tp1" Objekt fehlt.
Falls so ein Fall vorliegt, will ich (mit den infos aus der A Liste) vom "tp1" objekt den wert einer variable "takeprofit" haben und vom "tp2" Objekt die order id.
Diese 2 sachen werden als tupel in einer neuen Liste gespeichert.
Ausserdem wird in der A liste das "tp1" objekt gelöscht und beim "zp2" objekt eine bestimmte methode mit eben gespeicherten infos ausgeführt
sowie ein attriut angepasst.
kurzum die 2 attribute aus tp1 und tp2 objekt auslesen, tp1 objekt rausschmeissen, tp2 objekt mit jenen infos als parameter aufrufen und dessen attribut anpassen.
Klingt umständlich, ist es auch.
Nun scheitere ich aber dran wie ich mit den gegebenen A und B Listen
1. alle paarweise objekte in der A lsite finde (also gleiche message id, eins hat "tp1" eins hat "tp2"), wo in der B liste nur noch das "tp2" objekt existiert aber nicht mehr das "tp1" objekt.
und dann halt auf den "tp1" und "tp2" objekt die genannten Sachen mache.
Komme auf keinen sinnvolllen listen durhclauf algorithmus, gerade weil ich ja elemente teilweise während der iteration aus der A lsite rausschmeisse und so, komme ich nicht weiter.
Auch ob ich eine oder beide lsite vielleicht erst nahc message id, dann nach "tp1"/"tp2"srtieren sollte um mir das suchen dann leichter zu machen, keine Ahnung.
Verzweifle dran und kann mir im Kopf keine sinnvolle Vorgehensweise denken.
Hat Jemand einen guten Plan?