Python program to split a list into two lists with alternating elements

后端 未结 4 1555
日久生厌
日久生厌 2020-11-29 10:37

Can you make it more simple/elegant?

def zigzag(seq):
    \"\"\"Return two sequences with alternating elements from `seq`\"\"\"
    x, y = [], []
    p, q =          


        
4条回答
  •  执笔经年
    2020-11-29 10:59

    If seq, as you say, is a list, then:

    def zigzag(seq):
      return seq[::2], seq[1::2]
    

    If seq is a totally generic iterable, such as possibly a generator:

    def zigzag(seq):
      results = [], []
      for i, e in enumerate(seq):
        results[i%2].append(e)
      return results
    

提交回复
热议问题