Hallo,
ich bin noch neu in python.
Wie kann ich denn effizeient prüfen, ob eine Zahlenreihe vom Typ integer teil einen anderen Zahlenreihe vom Typ Integer ist.
Die Zahlenreihen bestehen immer aus zusammenhängende Zahlen z.b.: [5;8] oder [1;10] und haben auch eine bestimmte Maximallänge.
prüfen ob Zahlenmenge teil einer anderen Zahlenmenge ist
Generell auf subset prüfen gibt es natürlich schon. Das dürfte wohl nur ein deutlicher Mehraufwand sein weil die Information zusammenhängend nicht benutzt wird.
Code: Alles auswählen
>>> x = [1,2,3,4,5]
>>> y = [4,5]
>>> set(y) < set(x)
True
@trublu: Das wäre ja nicht effizient. Der simple Weg ist der von Sirius beschriebene. Wobei man die Werte ja auch nicht wirklich als Listen mit den ganzen Werten zwischen Anfang und Ende speichern würde, wenn man dafür keinen sehr guten Grund hat. Die Werte ausser Anfang und Ende enthalten letztendlich ja keine Information.
@BlackJack: Das ist richtig. Deswegen habe ich da ja auch selbst nochmal darauf hingewiesen. Trotzdem wollte ich nur zeigen das es generell möglich ist. Je nach Anwendungsfall ist Effizienz auch nicht immer ein relevantes Kriterium. Wenn man also zu faul ist sich für die 2 if eine eigene Funktion zu schreiben kann man das so durchaus machen, man nimmt nur in Kauf das es, wie bereits im erstem Beitrag erwähnt, ein deutlicher Mehraufwand ist.