Here's the question you clicked on:
susanjrobertson
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.
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...
Very nice concise answer. Thank you for asking the question Susan. That gave snark the opportunity to answer.
Thanks so much - I think I'm getting it :)
Thank you for bringing it up. I was struggling as well and was unfamiliar with list comprehensions. I'll study up.