Ich habe lange nachgedacht, konnte das aber nicht durcharbeiten. Betrachten Sie die folgenden Sequenzen über die Zeit, die den Status von Schaltern aufzeichnen:berechnen Zeit Schnittpunkt, wenn alle Sequenzen bestimmte Kriterien erfüllen?
A = [(10:00, 1), (11:00, 0), (12:00, 1), (12:30, 0), ..., (23:00, 1)] # schalten A ist um 10:00, ausschalten um 11:00 und so weiter
B = [(10:30, 1), (11 : 15, 0), (11:30, 1), (00.15, 0), ..., (23.30, 0)] # ebenfalls
C = ...
(In Wirklichkeit ist die Zeit im Format von python time.struct_time.)
Also im Grunde würde die Struktur be [(Zeit1, Status1), (Zeit2, Status2) ...]. Die Listen enthalten Daten innerhalb von 24 Stunden, und nur die Wechselinstanzen werden aufgezeichnet (so dass die benachbarten "Status" immer einander entgegengesetzt sind). Ich möchte die Gesamtzeit berechnen, wenn alle Schalter A, B, C eingeschaltet sind. Diese scheinbar einfache Frage braucht mich viele Tage, um etwas Nützliches zu finden. Bitte teile etwas von deiner Weisheit!
aber buchstäblich schreiben die Bedingung "a_on und b_on und c_on" funktioniert nicht, wie es nicht unbedingt erfüllen, auch wenn a, b, c alle eingeschaltet sind, weil die Zeiten diskret gespeichert sind. – agriprop
ok ich sehe deinen Punkt hier. Ich hätte darüber nachdenken sollen! Danke – agriprop
Sie könnten dies vereinfachen, indem Sie eine Funktion implementieren, die zwei Zeitleisten für die Eingabe als Eingabe verwendet und eine Zeitleiste zurückgibt. Auf diese Weise können Sie diese Funktion auf beliebig viele Switches erweitern. – GeneralBecos