[SOLVED] Process time, timeit()

Issue

I have several functions to create a list within a range. I’m using a time function I wrote, but it isn’t timing the list functions I input. My list functions return the created list, currently. And the error is telling me, when I use time_it() that result cannot pass through.

# one of my list functions

def for_list(x):
    x = range(x)
    list_1 = []
    for i in x:
        i = str(i)
        list_1 += i
    return list_1

# timing function 

def time_limit(tx):
    start_time = process_time()
    tx()
    end_time = process_time()
    time = (end_time - start_time)
    print(f'{tx.__name__}, {time:.15f}')

SIZE = 10000
time_limit(for_list(SIZE))

Am I suppose to return something differently or is my time_limit() incorrect?

Solution

Inside the function time_limit() you are calling the for list twice.

It is called once when passed through and called again on the tx() line.

When removing that line it should look like this:

# one of my list functions

def for_list(x):
    x = range(x)
    list_1 = []
    for i in x:
        i = str(i)
        list_1 += i
    return list_1

# timing function 

def time_limit(tx):
    start_time = process_time()
    end_time = process_time()
    time = (end_time - start_time)
    print(f'{tx.__name__}, {time:.15f}')

SIZE = 10000
time_limit(for_list(SIZE))

Answered By – Blue Robin

Answer Checked By – Dawn Plyler (BugsFixing Volunteer)

Leave a Reply

Your email address will not be published.