### re: SpeedUp Python List and Dictionary VIEW POST

re: I wonder though if this reduces code readability. Yes it does - idiomatic Python code is typically not written this way. If we are not talking ...

@Dimitri Did you tried this -

Kindly Look at the result below -

``````@timeit
def append_outside_loop(limit):
nums = []
append = nums.append
for num in limit:
append(num)

append_outside_loop(list(range(1, 9999999)))
``````
``````o/p - function - append_outside_loop, took 445 ms to complete
``````

and as you said -

``````@timeit
def append_outside_loop(limit):
nums = []
append = nums.append
[append(num) for num in limit]

append_outside_loop(list(range(1, 9999999)))
``````
``````o/p - function - append_outside_loop, took 602 ms to complete
``````

Excellent! You took the time to verify what I was saying without giving proof - and you we right to do so!

The problem is that the last line in the second function is actually building a list.

Here's a better example:

``````def is_even(x):
return x % 2 == 0

@timeit
def func1(my_list):
""" calling append() in a loop """
my_other_list = []
for x in my_list:
if is_even(x):
my_other_list.append(x)

func1(list(range(1, 9999999)))

@timeit
def func2(my_list):
"""Saving one 'op' by not looking up the is_even
function every time
"""
my_other_list = []
func = is_even
for x in my_list:
if func(x):
my_other_list.append(x)

func2(list(range(1, 9999999)))

@timeit
def func3(my_list):
"""Using list comprehensions
"""
my_other_list = [x for x in my_list if is_even(x)]

func3(list(range(1, 9999999)))
``````
Code of Conduct Report abuse