aquí es el patrón de uso:
mylist = [10, 2, 20, 5, 50]
found = next(i for i in mylist if predicate(i))
O, en Python 2.4/2.5 y, next()
es un no es un orden interna:
found = (i for i in mylist if predicate(i)).next()
tenga en cuenta que next()
plantea StopIteration
si ningún elemento era encontró. En la mayoría de los casos, probablemente sea bueno, usted pidió el primer elemento, no existe ese elemento, por lo que el programa probablemente no pueda continuar.
Si, por el contrario, se hace saben qué hacer en ese caso, se puede suministrar un valor predeterminado al next():
conf_files = ['~/.foorc', '/etc/foorc']
conf_file = next((f for f in conf_files if os.path.exists(f)),
'/usr/lib/share/foo.defaults')
Te refieres solo quieres encontrar el primer objeto que coincida con los criterios? – Blair
para más de un objeto que debe hacer '[i for i in mylist if i> 10]' – JBernardo
@Blair y @JBernardo, sí, solo el primer objeto coincidente. – Salil