title: Python filter / max combo - checking for empty iterator
body: <p>(Using Python 3.1)</p>
  
  <p>I know this question has been asked many times for the general question of testing if iterator is empty; obviously, there's no neat solution to that (I guess for a reason - an iterator doesn't really know if it's empty until it's asked to return its next value).</p>
  
  <p>I have a specific example, however, and was hoping I can make clean and Pythonic code out of it:</p>
  
  <pre><code>#lst is an arbitrary iterable
  #f must return the smallest non-zero element, or return None if empty
  def f(lst):
    flt = filter(lambda x : x is not None and x != 0, lst)
    if # somehow check that flt is empty
      return None
    return min(flt)
  </code></pre>
  
  <p>Is there any better way to do that?</p>
  
  <p>EDIT: sorry for the stupid notation. The parameter to the function is indeed an arbitrary iterable, rather than a list.</p>