I hope the spelling isn't too far off, but what is list comprehension statement and why would one use it?

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

#help('profile.run')

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:
            L1.append(x)
    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
print "Profile of evenList1(), check the time consumed by the many append() calls:"
print "(ignore time consumed by the profiler itself)\n"
profile.run('evenList1()')

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

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

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.