What is the most efficient way to concatenate two lists list_a
and list_b
when:
list_b
items have to be placed before
Why not just timeit?
import timeit
create_data = """\
list_a = range(10)
list_b = range(10)
"""
t1 = timeit.Timer(stmt=create_data + """\
list_a = list_b + list_a
""")
t2 = timeit.Timer(create_data + """\
for item in list_b:
list_a.insert(0, item)
""")
t3 = timeit.Timer(create_data + """\
for item in list_a:
list_b.append(item)
list_a = list_b
""")
t4 = timeit.Timer(create_data + """\
list_a[0:0] = list_b
""")
for i, t in enumerate([t1,t2,t3,t4]):
print i, "%.2f usec/pass" % (1000000 * t.timeit(number=100000)/100000)
Result:
0 0.73 usec/pass
1 2.79 usec/pass
2 1.66 usec/pass
3 0.77 usec/pass