, None go:
>>> def f(seq):
... return [x+x for x in seq]
>>> a = [1,6,5,None,5,None,None,1]
>>> indices, filtered = zip(*[(i, v) for i,v in enumerate(a) if v is not None])
>>> indices
(0, 1, 2, 4, 7)
-:
>>> filtered
(1, 6, 5, 5, 1)
>>> mapped = f(filtered)
>>> mapped
[2, 12, 10, 10, 2]
"" :
>>> unfiltered = dict(zip(indices, mapped))
>>> unfiltered
{0: 2, 1: 12, 2: 10, 4: 10, 7: 2}
, :
>>> result = [unfiltered.get(i) for i in range(len(a))]
>>> result
[2, 12, 10, None, 10, None, None, 2]