R3
from random import randint
from timeit import timeit
def insert_separator(old, sep):
def gen(_sep):
while True:
yield _sep
result = []
result.extend(zip(old, gen(sep)))
return result[:-1]
def foo(lst, sep):
res = []
for i in lst:
res += [i, sep]
return res[:-1]
source = [randint(1, 100000) for _ in range(10000)]
sep = None
N = len(source)
print(timeit("""insert_separator(source, None)""", number=10_000, globals={"source": source, "insert_separator": insert_separator}))
print(timeit("""foo(source, None)""", number=10_000, globals={"source": source, "foo": foo}))