Python程序到一个列表分为两个列表交替元素 [英] Python program to split a list into two lists with alternating elements
本文介绍了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屋!
查看全文