title: Native Python function to remove NoneType elements from list?
body: <p>I'm using Beautiful Soup in Python to scrape some data from HTML files. In some cases, Beautiful Soup returns lists that contain both <code>string</code> and <code>NoneType</code> objects. I'd like to filter out all the <code>NoneType</code> objects.</p>
  
  <p>In Python, lists with containing <code>NoneType</code> objects are not iterable, so list comprehension isn't an option for this. Specifically, if I have a list <code>lis</code> containing <code>NoneTypes</code>, and I try to do something like <code>[x for x in lis (some condition/function)]</code>, Python throws the error <code>TypeError: argument of type 'NoneType' is not iterable</code>. </p>
  
  <p>As we've seen in <a href="https://stackoverflow.com/questions/6458006/python-cleaning-a-list">other posts</a>, it's straightforward to implement this functionality in a user-defined function. Here's my flavor of it:</p>
  
  <pre><code>def filterNoneType(lis):
      lis2 = []
      for l in links: #filter out NoneType
          if type(l) == str:
              lis2.append(l)
      return lis2
  </code></pre>
  
  <p>However, I'd love to use a built-in Python function for this if it exists. I always like to simplify my code when possible. <strong>Does Python have a built-in function that can remove <code>NoneType</code> objects from lists?</strong></p>