猿问

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

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

在Python中,是否有一种交错两个相同长度列表的好方法?

说我给[1,2,3][10,20,30]。我想把它们变成[1,10,2,20,3,30]


动漫人物
浏览 561回答 3
3回答

繁星coding

发布问题后,我意识到我可以简单地执行以下操作:[val for pair in zip(l1, l2) for val in pair]两个列表的位置l1和l2位置。如果有N个列表要交错,那么lists = [l1, l2, ...][val for tup in zip(*lists) for val in tup]有关更多配方,请按照最佳方式将列表与其后缀值交错。所展示的一些方法可以推广到两个或更多个相等长度的列表。

烙印99

对于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用作创建完全正确长度的新列表的简单方法(在此阶段,其内容并不重要)。接下来的两行交错的实际工作a和b:第一个指定的元素a全部偶数的指标c; 第二个将b所有奇数索引的元素分配给c。
随时随地看视频慕课网APP

相关分类

Python
我要回答