13 Years
Discussion Span
Last Post by vegaseat

List comprehension is something Python borrowed from a language called Haskell. It returns a new list and is shorter and simply faster than the traditional loop/append alternative. I repeated the earlier code for the Python profile module here. Look at the two functions and you can get an idea how list comprehension works within the one-line [...].

# using the module profile to profile a function or a statement

import profile


def evenList1():
    """returns a list of even numbers from 0 to 99998 using append in a loop
    the 50000 calls to append() consume much CPU time
    L1 = []
    for x in range(100000):
        if x % 2 == 0:
    return L1

def evenList2():
    """returns a list of even numbers from 0 to 99998 using list comprehension
    much faster in CPU time than the standard loop with append()
    L2 = [x for x in range(100000) if x % 2 == 0]
    return L2

# test first 30 elements
print evenList1()[0:30]
print evenList2()[0:30]

print "Profile of evenList1(), check the time consumed by the many append() calls:"
print "(ignore time consumed by the profiler itself)\n"

print "Profile of evenList2():"
print "(ignore time consumed by the profiler itself)\n"

I put this also into the "Starting Python" thread.

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.