title: Correct way to iterate twice over a list?
body: <p>What is the correct way to perform multiple iteration over a container? From python documentation:</p>
  
  <blockquote>
    <p>Iterator -  A container object (such as a list) produces a fresh new
    iterator each time you pass it to the iter() function or use it in a
    for loop. Attempting this with an iterator will just return the same
    exhausted iterator object used in the previous iteration pass, making
    it appear like an empty container.</p>
    
    <p>The intention of the protocol is that once an iterator’s next() method
    raises StopIteration, it will continue to do so on subsequent calls.
    Implementations that do not obey this property are deemed broken.
    (This constraint was added in Python 2.3; in Python 2.2, various
    iterators are broken according to this rule.)</p>
  </blockquote>
  
  <p>If I have this code:</p>
  
  <pre><code>slist = [1,2,3,4]
  rlist = reversed(slist)
  list(rlist)
  #[4,3,2,1]
  tuple(rlist)
  #()
  </code></pre>
  
  <p>What would be the easiest and most correct way to iterate over 'rlist' twice?</p>