Jaki byłby najbardziej elegancki i skuteczny sposób znajdowania/zwracania pierwszego elementu listy, który pasuje do określonego kryterium?znaleźć pierwszy element sekwencji, który pasuje do kryterium
Na przykład, jeśli mam listę obiektów i chciałbym uzyskać pierwszy obiekt tych z atrybutem obj.val==5
. Mógłbym oczywiście użyć rozumienia listowego, ale wymagałoby to O (n), a jeśli n jest duże, to marnotrawstwo. Mogłem także użyć pętli z break
, gdy tylko kryterium zostało spełnione, ale pomyślałem, że może być bardziej pytonowo/eleganckie rozwiązanie.
co, jeśli chcemy uzyskać pozycję i indeks? –
@CharlieParker, aby uzyskać zarówno indeks, jak i element, użyj wyliczenia() - next ((idx, obj) dla idx, obj w wyliczeniu (objs), jeśli obj.val == 5) –