¿Cuál sería la forma más elegante y eficiente de encontrar/devolver el primer elemento de la lista que coincida con un determinado criterio?encontrar el primer elemento de secuencia que coincida con un criterio
Por ejemplo, si tengo una lista de objetos y me gustaría obtener el primer objeto de aquellos con el atributo obj.val==5
. Por supuesto, podría usar la comprensión de la lista, pero incurriría en O (n) y si n es grande, es un desperdicio. También pude usar un ciclo con break
una vez que se cumplió el criterio, pero pensé que podría haber una solución más pitónica/elegante.
lo que si usted quiere conseguir el artículo y el índice? –
@CharlieParker, para obtener tanto el índice como el elemento, use enumerate() - next ((idx, obj) para idx, obj en enumerate (objs) if obj.val == 5) –