title: How to skip first element in `for` loop?
body: <p>Is there a robust, universal way in python to skip first element in the <code>for</code> loop?</p>
  
  <p>The only way I can think of is to write a special generator by hand:</p>
  
  <pre><code>def skipFirst( it ):
      it = iter(it) #identity for iterators
      it.next()
      for x in it:
          yield x
  </code></pre>
  
  <p>And use it for example like:</p>
  
  <pre><code>for x in skipFirst(anIterable):
      print repr(x)
  </code></pre>
  
  <p>and like:</p>
  
  <pre><code>doStuff( str(x) for x in skipFirst(anIterable) )
  </code></pre>
  
  <p>and like:</p>
  
  <pre><code>[ x for x in skipFirst(anIterable) if x is not None ]
  </code></pre>
  
  <p>I know we can do slices on lists <code>(x for x in aList[1:])</code> but this makes a copy and does not work for all sequences, iterators, collections etc.</p>