为了账号安全,请及时绑定邮箱和手机立即绑定

在Python中交错多个相同长度的列表

在Python中交错多个相同长度的列表

动漫人物 2019-07-27 10:36:51
在Python中交错多个相同长度的列表在Python中,是否有一种交错两个相同长度列表的好方法?说我给[1,2,3]和[10,20,30]。我想把它们变成[1,10,2,20,3,30]。
查看完整描述

3 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

发布问题后,我意识到我可以简单地执行以下操作:

[val for pair in zip(l1, l2) for val in pair]

两个列表的位置l1l2位置。


如果有N个列表要交错,那么

lists = [l1, l2, ...][val for tup in zip(*lists) for val in tup]

有关更多配方,请按照最佳方式将列表与其后缀值交错。所展示的一些方法可以推广到两个或更多个相等长度的列表。


查看完整回答
反对 回复 2019-07-27
?
烙印99

TA贡献1829条经验 获得超13个赞

对于Python> = 2.3,有扩展的切片语法

>>> a = [0, 2, 4, 6, 8]>>> b = [1, 3, 5, 7, 9]>>> c = a + b>>> c[::2] = a>>> c[1::2] = b>>> c[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

该行c = a + b用作创建完全正确长度的新列表的简单方法(在此阶段,其内容并不重要)。接下来的两行交错的实际工作ab:第一个指定的元素a全部偶数的指标c; 第二个将b所有奇数索引的元素分配给c


查看完整回答
反对 回复 2019-07-27
  • 3 回答
  • 0 关注
  • 560 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信