Ich habe eine große Liste von Unterlisten (ca. 16000), die ich finden möchte, wo das sich wiederholende Muster beginnt und endet. Ich bin nicht 100% sicher, dass es eine Wiederholung gibt, aber ich habe einen starken Grund, dies zu glauben, aufgrund der Diagonalen, die in der Unterlistensequenz erscheinen. Die Struktur einer Liste von Unterlisten wird bevorzugt, da sie für andere Dinge in diesem Skript verwendet wird. Die Daten sieht wie folgt aus:Suchen Sie sich wiederholende Unterliste innerhalb der großen Liste
data = ['1100100100000010',
'1001001000000110',
'0010010000001100',
'0100100000011011', etc
Ich habe keine Zeit Zwänge, aber die schnellste Methode, bei der nicht die Stirn runzeln würde. Der Code sollte in der Lage sein, die Anfangs-/Endsequenz und den Ort innerhalb der Liste zurückzugeben, um in der Zukunft aufgerufen zu werden. Wenn es eine Anordnung der Daten gibt, die nützlicher wäre, kann ich versuchen, sie bei Bedarf neu zu formatieren. Python ist etwas, was ich in den letzten Monaten gelernt habe, daher kann ich meine eigenen Algorithmen noch nicht einfach von Grund auf neu erstellen. Vielen Dank!
ist es möglich, dass Sie eher diese Liste verwenden? –
Sie könnten Suffixbäume betrachten (zB [(1)] (http://www.geeksforgeeks.org/suffix-tree-application-3-longest-repeated-substring/), oder Ihre Frage zu "wiederholten Teilstrings" umformulieren ", wie Sie mehr Ergebnisse finden können. – jedwards
@AliSAIDOMAR Wie ich es verstehe, wenn Sie set verwenden, ein Zeichen kann nur einmal angezeigt. Da die gesamte Liste nur 0 oder 1 ist, ist das problematisch. – paperstsoap