title: how itertools.tee works, can type 'itertools.tee' be duplicated in order to save it's "status"?
body: <p>Below are some tests about <code>itertools.tee</code>:</p>
  
  <pre><code>    li = [x for x in range(10)]
      ite = iter(li)
  ==================================================
      it = itertools.tee(ite, 5)
      &gt;&gt;&gt; type(ite)
      &lt;type 'listiterator'&gt;
      &gt;&gt;&gt; type(it)
      &lt;type 'tuple'&gt;
      &gt;&gt;&gt; type(it[0])
      &lt;type 'itertools.tee'&gt;
      &gt;&gt;&gt; 
  
      &gt;&gt;&gt; list(ite)
      [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
      &gt;&gt;&gt; list(it[0])          # here I got nothing after 'list(ite)', why?
      []
      &gt;&gt;&gt; list(it[1])
      []
  ====================play again===================
      &gt;&gt;&gt; ite = iter(li)
      it = itertools.tee(ite, 5)
      &gt;&gt;&gt; list(it[1])
      [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
      &gt;&gt;&gt; list(it[2])
      [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
      &gt;&gt;&gt; list(it[3])
      [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
      &gt;&gt;&gt; list(it[4])
      [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
      &gt;&gt;&gt; list(ite)
      []                       # why I got nothing? and why below line still have the data?   
      &gt;&gt;&gt; list(it[0])
      [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
      &gt;&gt;&gt; list(it[0])
      []
  ====================play again===================    
      &gt;&gt;&gt; ite = iter(li)
      itt = itertools.tee(it[0], 5)    # tee the iter's tee[0].
      &gt;&gt;&gt; list(itt[0])
      [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
      &gt;&gt;&gt; list(itt[1])
      [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
      &gt;&gt;&gt; list(it[0])
      []                               # why this has no data?
      &gt;&gt;&gt; list(it[1])
      [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
      &gt;&gt;&gt; list(ite)
      [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]  
  </code></pre>
  
  <p>My question is</p>
  
  <ol>
  <li>How does tee work and why sometimes the original iter 'has data' and other time it doesn't? </li>
  <li>Can I keep an iter deep copy as a "status seed" to keep the raw iterator status and tee it to use later? </li>
  <li>Can I swap 2 iters or 2 <code>itertools.tee</code>?</li>
  </ol>
  
  <p>Thanks!</p>