ЯЛ
Size: a a a
ЯЛ
Z
ЯЛ
ЯЛ
ЯЛ
R3
R3
R3
from random import randint
from timeit import timeit
from itertools import chain
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("""list(sum(zip(source, [None]*N), tuple()))[:-1]""", number=10_00, globals={"source": source, "N": N}))
print(timeit("""sum([[x, None] for x in source], list())[:-1]""", number=10_00, globals={"chain": chain, "source": source}))
print(timeit("""list(chain(*([x, None] for x in source)))[:-1]""", number=10_00, globals={"chain": chain, "source": source}))
print(timeit("""insert_separator(source, None)""", number=10_00, globals={"source": source, "insert_separator": insert_separator}))
print(timeit("""foo(source, None)""", number=10_00, globals={"source": source, "foo": foo}))
$
$
k
$
$
$
ЯЛ
$
ЯЛ
R3