From 3c973de4889fa7d02cf769a06e567742410e20cb Mon Sep 17 00:00:00 2001 From: Aric Coady Date: Mon, 26 Sep 2016 17:43:44 -0700 Subject: [PATCH] Simplified and optimized iterutils.first. --- boltons/iterutils.py | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/boltons/iterutils.py b/boltons/iterutils.py index 3ba4d6b..d6c840a 100644 --- a/boltons/iterutils.py +++ b/boltons/iterutils.py @@ -24,6 +24,7 @@ except ImportError: _UNSET = object() try: + from future_builtins import filter from itertools import izip except ImportError: # Python 3 compat @@ -631,16 +632,7 @@ def first(iterable, default=None, key=None): .. _the original standalone module: https://github.com/hynek/first """ - if key is None: - for el in iterable: - if el: - return el - else: - for el in iterable: - if key(el): - return el - - return default + return next(filter(key, iterable), default) def same(iterable, ref=_UNSET):