title: Does multiprocessing.pool.map erase map object?
body: <p>When I apply <code>multiprocessing.pool.map</code> to <code>list</code> object, the <code>list</code> object would not be affected:</p>
  
  <pre><code>from multiprocessing import Pool
  
  def identity(x):
      return x
  
  num_list = list(range(0, 10))
  
  print("before multiprocessing:")
  with Pool(10) as p:
      print(p.map(identity, num_list))
  
  print("after multiprocessing:")
  print(list(num_list))
  </code></pre>
  
  <p>prints</p>
  
  <pre><code>before multiprocessing:
  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  after multiprocessing:
  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  </code></pre>
  
  <p>But when I apply <code>multiprocessing.pool.map</code> upon <code>map</code> object, it seems to got erased:</p>
  
  <pre><code>from multiprocessing import Pool
  
  def identity(x):
      return x
  
  num_list = list(range(0, 10))
  num_list = map(identity, num_list)
  
  print("before multiprocessing:")
  with Pool(10) as p:
      print(p.map(identity, num_list))
  
  print("after multiprocessing:")
  print(list(num_list))
  
  </code></pre>
  
  <p>prints</p>
  
  <pre><code>before multiprocessing:
  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  after multiprocessing:
  []
  </code></pre>
  
  <p>The only difference is <code>num_list = map(identity, num_list)</code>.</p>
  
  <p>Does <code>num_list</code>(map object) got erased by  <code>multiprocessing.pool.map</code>?</p>
  
  <p>I'm not sure about this but I couldn't find another explanation.</p>