Einführung
In Python können wir die enumerate()-Funktion verwenden, um über eine Liste zu iterieren und sowohl den Index als auch den Wert jedes Elements zu erhalten. Wir können auch Listenverständnis verwenden, um Elemente zu filtern, die eine bestimmte Bedingung erfüllen. In dieser Herausforderung werden Sie diese Konzepte verwenden, um eine Funktion zu erstellen, die die Indizes aller Elemente in einer Liste findet, die eine gegebene Testfunktion erfüllen.
Alle passenden Indizes finden
Schreiben Sie eine Funktion find_index_of_all(lst, fn), die eine Liste lst und eine Testfunktion fn als Argumente nimmt und eine Liste von Indizes aller Elemente in lst zurückgibt, für die fn True zurückgibt.
Eingabe
- Eine Liste
lstvon ganzen Zahlen. - Eine Testfunktion
fn, die eine ganze Zahl als Eingabe nimmt und einen booleschen Wert zurückgibt.
Ausgabe
- Eine Liste von ganzen Zahlen, die die Indizes aller Elemente in
lstrepräsentieren, für diefnTruezurückgibt.
def find_index_of_all(lst, fn):
return [i for i, x in enumerate(lst) if fn(x)]
find_index_of_all([1, 2, 3, 4], lambda n: n % 2 == 1) ## [0, 2]
Zusammenfassung
In dieser Herausforderung haben Sie gelernt, wie Sie enumerate() und Listenverständnis verwenden, um die Indizes aller Elemente in einer Liste zu finden, die eine gegebene Testfunktion erfüllen. Sie können nun diese Kenntnisse nutzen, um zukünftig ähnliche Probleme zu lösen.