Python Language Filtrar como comprobación de cortocircuito.


Ejemplo

filter (3.x pitón) y ifilter (Python 2.x) devuelve un generador, así que puede ser muy útil cuando se crea un ensayo de cortocircuito como or o and :

Python 2.x 2.0.1
 # not recommended in real use but keeps the example short:
from itertools import ifilter as filter
Python 2.x 2.6.1
 from future_builtins import filter

Para encontrar el primer elemento que es más pequeño que 100:

car_shop = [('Toyota', 1000), ('rectangular tire', 80), ('Porsche', 5000)]
def find_something_smaller_than(name_value_tuple):
    print('Check {0}, {1}$'.format(*name_value_tuple)
    return name_value_tuple[1] < 100
next(filter(find_something_smaller_than, car_shop))
# Print: Check Toyota, 1000$
#        Check rectangular tire, 80$
# Out: ('rectangular tire', 80)

La next función proporciona el siguiente elemento (en este caso, primero) y es, por lo tanto, la razón por la que es un cortocircuito.