我希望能够交错两个可能长度不等的列表.我有的是:
def interleave(xs,ys):
a=xs
b=ys
c=a+b
c[::2]=a
c[1::2]=b
return c
Run Code Online (Sandbox Code Playgroud)
这适用于长度相等或只有+/- 1的列表.但是如果让我们说xs = [1,2,3]和ys = ["hi,"bye","no","yes","why"]这条消息出现:
c[::2]=a
ValueError: attempt to assign sequence of size 3 to extended slice of size 4
Run Code Online (Sandbox Code Playgroud)
如何使用索引修复此问题?或者我必须使用for循环?编辑:我想要的是让额外的值出现在最后.
如何以这种特定方式合并这 3 个列表?
输入:
l1 = [0, 0]
l2 = [1, 1, 1]
l3 = [2, 2, 2]
Run Code Online (Sandbox Code Playgroud)
输出:
merged = [0, 1, 2, 0, 1, 2, 1, 2]
Run Code Online (Sandbox Code Playgroud)