@Schlitzaaa: Ich denke so ein bisschen ein Problem bei der Aufgabe ist, ist dass das keine Python-Aufgabe ist, wir hier aber geneigt sind Python-Antworten zu geben.
Die Aufgabe soll zwar in Python(-Syntax) gelöst werden, aber es fängt schon mit der Formulierung der Aufgabe im Betreff an: „Python Feld …“ — „Feld“ ist eine übliche deutsche Übersetzung von „Array“. Python hat so etwas nicht als eingebauten Datentyp. Der normale Grunddatentyp für Sequenzen ist eine Liste und auf Listen sind Operationen definiert, was man aber anscheinend alles nicht verwenden soll. Stattdessen Indexherumgehampel was man aus „low level“-Programmiersprachen mit Arrays als eingebautem Datentyp kennt, was aber so gar kein idiomatisches Python ist.
Die offensichtliche, idiomatische Python-Lösung wäre das mit einem `set` zu lösen:
Code: Alles auswählen
def all_items_are_unique(A):
return len(A) == len(set(A))
Wenn man eine Lösung mit sortierter Liste schreiben will, dann wäre das `sorted()`, `pairwise()`, und `all()`. `pairwise()` entweder ”selbst” geschrieben, nach dem Rezept in der Dokumentation vom `itertools`-Modul oder aus dem externen `more_itertools` importiert:
Code: Alles auswählen
def all_items_are_unique(A):
return all(a != b for a, b in pairwise(sorted(A)))
Eine Gemeinsamkeit von beiden Lösungen ist das nicht-verwenden von irgendwelchen Indexzugriffen. Das ist in Python (und anderen Hochsprachen) nämlich eher selten, das man per Laufindex irgendwo zugreift. Man braucht Indexzugriffe zwar auch in Python, aber nicht wenn man linear durch die Elemente geht. Die sind für den wahlfreien Zugriff, also wenn der Programmierer nicht vorhersagen kann in welcher Reihenfolge auf die Elemente zugegriffen wird.
Die Aufgabenstellung scheint aber sehr auf Indexzugriffe fixiert zu sein. Also etwas was man beispielsweise von Aufgabenstellungen in C oder Pascal erwarten würde, wo das Array die zentrale sequentielle Datenstruktur ist, und man per Index zugreifen *muss*. Naja, fast, in C sind auch Zeiger üblich, was ja aber auch ein sehr „low level“-Konzept ist, was es in Python so nicht gibt.