Ik wil een idiomatische manier om het eerste element in een lijst te vinden dat overeenkomt met een predikaat.
De huidige code is nogal lelijk:
[x voor x in seq if predicate(x)][0]
Ik heb erover nagedacht om het te veranderen in:
van itertools import dropwhile dropwhile(lambda x: not predicate(x), seq).next()
Maar er moet iets eleganters zijn... En het zou leuk zijn als het een Geen
waarde retourneert in plaats van een uitzondering te maken als er geen overeenkomst wordt gevonden.
Ik weet dat ik gewoon een functie zou kunnen definiëren als:
def get_first(predicaat, seq): for i in seq : if predicate(i): return i return Geen
Maar het is nogal smakeloos om de code te gaan vullen met hulpprogramma's zoals deze (en mensen zullen waarschijnlijk niet merken dat ze er al zijn, dus ze hebben de neiging om in de loop van de tijd te worden herhaald) als er ingebouwde ins zijn die al hetzelfde bieden.