Python程序到一个列表分为两个列表交替元素 [英] Python program to split a list into two lists with alternating elements

查看:800
本文介绍了Python程序到一个列表分为两个列表交替元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您可以使它更简单/优雅?

 高清锯齿(SEQ):
    返回两个序列与`seq`交替的元素
    的x,y = [],[]
    P,Q = X,Y
    为电子序列:
        p.append(五)
        P,Q = Q,P
    回报X,Y
 

解决方案

如果序列,就像你说的,是一个列表,则:

 高清锯齿(SEQ):
  返回序列[:: 2],SEQ [1:2]
 

如果序列是完全通用的迭代,比如可能是发电机:

 高清锯齿(SEQ):
  结果= [],[]
  对于我,在历数(SEQ)E:
    结果[我%2] .append(五)
  返回结果
 

Can you make it more simple/elegant?

def zigzag(seq):
    """Return two sequences with alternating elements from `seq`"""
    x, y = [], []
    p, q = x, y
    for e in seq:
        p.append(e)
        p, q = q, p
    return x, y

解决方案

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

这篇关于Python程序到一个列表分为两个列表交替元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆