В Python 3:
a = (None, False, 0, 1)
assert next(filter(None, a)) == 1
В Python 2.6:
a = (None, False, 0, 1)
assert next(iter(filter(None, a))) == 1
РЕДАКТИРОВАТЬ: Я думал, что это было очевидно, но, видимо, нет: вместо None
вы можете передать функцию (или lambda
) с проверкой на условие:
a = [2,3,4,5,6,7,8]
assert next(filter(lambda x: x%2, a)) == 3