Escreva um iterator filtra que recebe como entrada um iterator it e uma função d e a) devolve o 1o elemento de it b) devolve o proximo elemento de it (novo) que satisfaz d(novo,ultimo) onde ultimo é o ultimo elemento devolvido

O iterator NAO pode expandir o iterator it desnecessariamente

def d(x,y):
   return  abs(x-y)>1

a = iter([1,3,4,8 , -3, -4])
b = filtra(a,d)

next(b)  -> 1
next(b)  -> 3
next(b)  -> 8
next(b)  -> -3
next(b)  -> raise StopIteration