交叉列表与固定元素

enr*_*cis 14 python list

我知道我可以将两个python列表交错:

[elem for pair in zip(*lists) for elem in pair]
Run Code Online (Sandbox Code Playgroud)

现在我需要将列表与固定元素交错,如:

list = [1, 2, 3, 4]
#  python magic 
output = [1, 0, 2, 0, 3, 0, 4]
Run Code Online (Sandbox Code Playgroud)

enr*_*cis 7

一个非常直接的解决方案是:

[elem for x in list for elem in (x, 0)][:-1]
Run Code Online (Sandbox Code Playgroud)


Jun*_*sor 6

您可以尝试以下itertools魔术:

>>> from itertools import repeat, chain, izip
>>> l = [1, 2, 3, 4]
>>> list(chain.from_iterable(izip(l[:-1], repeat(0)))) + l[-1:]
[1, 0, 2, 0, 3, 0, 4]
Run Code Online (Sandbox Code Playgroud)