Wenn es einfach nur darum geht, jedes 2. Element durch 0 zu ersetzen:
Code: Alles auswählen
In [59]: ls = [1, 2, 3, 4, 5, 6]
In [60]: ls2 = [0 if i & 1 else x for i, x in enumerate(ls)]
In [61]: ls2
Out[61]: [1, 0, 3, 0, 5, 0]
Was mir noch eingefallen (und etwas allgemeiner) ist:
Code: Alles auswählen
def slice_replace(ls, start, step, val):
res = ls[::]
x = slice(start, None, step)
res[x] = len(res[x]) * [val]
return res
ls = [1, 2, 3, 4, 5, 6]
print slice_replace(ls, 1, 2, 0)
print ls
Vielleicht(?) etwas schoener:
Code: Alles auswählen
from itertools import cycle, izip
def list_replace(ls, start, step, val):
return ls[:start] + \
[x if i else val for i, x in izip(cycle(xrange(step)), ls[start:])]
print list_replace(ls, 1, 2, 0)
print ls
yipyip