Encuentra el primer elemento en una secuencia que coincida con un predicado

| | |

Quiero una forma idiomática de encontrar el primer elemento en una lista que coincida con un predicado.

El código actual es bastante feo:

[x for x in seq if predicate(x)][0] 

He pensado en cambiarlo a:

from itertools import dropwhile dropwhile(lambda x: not predicate(x), seq).next() 

Pero debe haber algo más elegante... Y sería bueno si devuelve un valor Ninguno en lugar de generar una excepción si no se encuentra ninguna coincidencia.

Sé que podría definir una función como:

def get_first(predicate, seq): for i in seq : if predicate(i): return i return None 

Pero es de muy mal gusto comenzar a llenar el código con funciones de utilidad como esta (y la gente probablemente no notará que ya están allí, por lo que tienden a repetirse con el tiempo) si hay integrados que ya proporcionan lo mismo.

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method