## susanjrobertson 3 years ago I'm having a hard time with the final written exercise. I've read about list comprehensions, but something isn't clicking for me. Any help is appreciated.

1. snark

they are just another way of producing a new list. if a = [1,2,3,4,5,6,7,8], we could produce a list of the squared elements of a: sqrs = [] # an empty list for x in a: # for each element of a b.append(x*x) # add x*x to the list b list comprehensions just give you a more concise mechanism to do it: b = [ x*x for x in a] # b is the same list as produced above. if we have some function def def f(x): return x*x*x + 17 we can produce a list of f(i) for each i in a b = [f(i) for i in a] which is the list [f(1),f(2)...f(8)] we can even add a condition: b = [x for x in a if x % 2 == 0] this is the same as: b = [] for x in a: if x % 2 == 0: b.append(x) a list comprehension is only a shorter (different) way of doing it, despite the name, nothing really new. play with a few in idle. a = [1,2,3,4], b = [x/2 for x in a], and print b. I hope I haven't made things worse...

2. andrew.m.higgs

Very nice concise answer. Thank you for asking the question Susan. That gave snark the opportunity to answer.

3. susanjrobertson

Thanks so much - I think I'm getting it :)

4. Screech

Thank you for bringing it up. I was struggling as well and was unfamiliar with list comprehensions. I'll study up.