title: join two lists of dictionaries on a single key
body: <p>Given <code>n</code> lists with <code>m</code> dictionaries as their elements, I would like to produce a new list, with a joined set of dictionaries. Each dictionary is guaranteed to have a key called "index", but could have an arbitrary set of keys beyond that. The non-index keys will never overlap across lists. For example, imagine the following two lists:</p>
  
  <pre><code>l1 = [{"index":1, "b":2}, {"index":2, "b":3}, {"index":3, "green":"eggs"}]
  l2 = [{"index":1, "c":4}, {"index":2, "c":5}]
  </code></pre>
  
  <p>(<code>"b"</code> would never appear in <code>l2</code>, since it appeared in <code>l1</code>, and similarly, <code>"c"</code> would never appear in <code>l1</code>, since it appeared in <code>l2</code>)</p>
  
  <p>I would like to produce a joined list:</p>
  
  <pre><code>l3 = [{"index":1, "b":2, "c":4}, 
        {"index":2, "b":3, "c":5}, 
        {"index":3, "green":"eggs"}]
  </code></pre>
  
  <p>What is the most efficient way to do this in Python?</p>