title: Remove namedtuple from list based on value
body: <p>Consider the following class that extends a <code>list</code> and appends <code>orderedtuple</code>s:</p>
  
  <pre><code>from collections import namedtuple
  
  Order = namedtuple('Order', ['id', 'value'])
  
  
  class Orders(list):
      def __init__(self, *args):
          super(Orders, self).__init__()
          self.extend(args)
  
      def add(self, id, value):
          self.append(Order(id, value))
  </code></pre>
  
  <p>...add some elements...</p>
  
  <pre><code>order = Orders()
  
  order.add(1, 'alpha')
  order.add(2, 'beta')
  order.add(3, 'lambda')
  order.add(4, 'omega')
  </code></pre>
  
  <p>...and we're left with...</p>
  
  <pre><code>print order
  [Order(id=1, value='alpha'), Order(id=2, value='beta'), Order(id=3, value='lambda'), Order(id=4, value='omega')]
  </code></pre>
  
  <p>Say I want to remove an arbitrary element by it's <code>id</code>. For example:</p>
  
  <pre><code>order.remove(id=2) # ideal function call to remove by `id`
  print order
  [Order(id=1, value='alpha'), Order(id=3, value='lambda'), Order(id=4, value='omega')]
  </code></pre>
  
  <p>Is there a reasonably simple method to accomplish this?</p>