title: How to split an iterable into two lists with alternating elements
body: <p>I want to split an iterable into two lists with alternating elements. Here is a working solution. But is there a simpler way to achieve the same?</p>
  <pre><code>def zigzag(seq):
      &quot;&quot;&quot;Return two sequences with alternating elements from `seq`&quot;&quot;&quot;
      x, y = [], []
      p, q = x, y
      for e in seq:
          p.append(e)
          p, q = q, p
      return x, y
  </code></pre>
  <p>Sample output:</p>
  <pre><code>&gt;&gt;&gt; zigzag('123456')
  (['1', '3', '5'], ['2', '4', '6'])
  </code></pre>