title: Remove item exactly once from list in list comprehension
body: <p>I have a list of lists, with corresponding values:</p>
  <pre><code>lists = [[7, 4, 7, 5, 3],
           [1, 3, 2], 
           [4, 5]]
  vals = [7, 2, 5]
  </code></pre>
  <p>I would like to, in an efficient manner (runtime), remove the corresponding value in <code>vals</code>, from each list, exactly once. Eg, the first list <code>[7, 4, 7, 5, 3]</code> should become <code>[4, 7, 5, 3]</code> (or <code>[7, 4, 5, 3]</code>, ordering is unimportant).</p>
  <p><strong>Expected output:</strong></p>
  <pre><code>[[4, 7, 5, 3], [1, 3], [4]]
  </code></pre>
  <p><strong>What I have tried:</strong></p>
  <pre><code>[lst.remove(val) for lst, val in zip(lists, vals)]
  </code></pre>
  <p><code>list.remove(item)</code> removes the first occurrence of <code>item</code> in <code>list</code>, but since it returns <code>None</code>, the output becomes:</p>
  <pre><code>[None, None, None]
  </code></pre>
  <p>Any ideas on how to do this with a list comprehension (or other methods perhaps)?</p>