code: def dropwhilenot(func, iterable):
      
      iterable = iter(iterable)
      for x in iterable:
          if func(x): break
      else: return
      yield x
      for x in iterable:
          yield x
docs: >>> list(dropwhilenot(lambda x:x==3, range(10)))
      [3, 4, 5, 6, 7, 8, 9]