2
J'ai une liste qui contient un certain nombre de choses:Existe-t-il une façon plus simple d'obtenir la première occurrence de quelque chose?
lista = ['a', 'b', 'foo', 'c', 'd', 'e', 'bar']
Je voudrais obtenir le premier élément de la liste qui répond à un prédicat, dire len(item) > 2
. Y a-t-il une façon plus simple de le faire que de laisser tomber les outils et ensuite?
first = next(itertools.dropwhile(lambda x: len(x) <= 2, lista))
Je suis allé [item for item in lista if len(item)>2][0]
au début, mais qui nécessite python pour générer d'abord la liste complète.
Notez que la fonction suivante a été ajoutée dans 2.6. Si vous avez besoin de compatibilité avec 2.5 ou 2.4 alors utilisez '(i pour i dans lista si len (i)> 2) .next()' –
Toujours oublier les générateurs ... –