Versuchen zu lernen, wie man in einer Liste in Python nach "pattern-like" -Sequenzen sucht, d. H., Ob es eine bestimmte Folge von Ganzzahlen in einer Liste gibt.Suche nach Elementen in einer bestimmten Reihenfolge in Listen
Meine beste Idee war zu überprüfen, ob a) alle drei Zahlen vorhanden sind b) um zu sehen, ob ihre Indizes sequentiell größer als einander sind. Aber ich bekomme unexcepted Ausgang wie folgt:
necessary_sequence = [20, 56, 2]
first_num = necessary_sequence[0]
second_num = necessary_sequence[1]
third_num = necessary_sequence[2]
test_list = [43, 12, 20, 20, 56, 56, 2, 4, 98, 20] #should print output_2, but printing output_1 (order rule is not observed)
if first_num in test_list and second_num in test_list and third_num in test_list:
if test_list.index(first_num) < test_list.index(second_num) < test_list.index(third_num):
print("output_1: all three numbers are in the list in order")
else:
print("output_2: the numbers are either missing from the list or are not in order")
Kann jemand die Fehler in der Logik des oben genannten Codes lokalisieren?
Sie überprüfen nur, ob Indizes größer sind, aber nicht, wenn Indizes folgen – PRMoureu
Warum erwarten Sie output_2? Die Zahlen 20, 56 und 2 erscheinen in dieser Reihenfolge in Ihrer Liste, sodass Ausgabe_1 ausgegeben wird. Bitte erläutern Sie im Detail, was Sie zu tun versuchen. Unter der Annahme 'necessary_sequence = [1, 2, 3]', was wäre die erwartete Ausgabe für die Eingaben '[1, 2, 3]', '[1, 2, 0, 3]' und '[3, 1, 2, 3] '? –
Danke Leute, also nur wenn Zahlen in der Liste stehen wie [1, 2, 3] sollte der Ausgang ja drucken. Zum Beispiel sollte [1, 2, 2, 3] output_2 ausgeben, da 2 zweimal auftritt und somit die Sequenz unterbrechen sollte. – budaxo