I’m new to programming a bit, and am learning python so I can learn flask, using the python crash course book. I was learning about list comprehension but it briefly talks about it. If I do
list[list.append(value) for value in range(1, 20)]
it doesn’t work. Would this be some sort of recursive expression that is not possible?
Thanks for the response.
I am aware somewhat of what an array is, as i’ve dabbled with them in C, and know they can be multi-dimensional. Sorry if I’m being blind, but all I see are function calls in that list comprehension. I think what im asking is stupid, as the range function is returning a list populated.
No problems. Learning a new concept is not stupid. So you are familiar with C. In C term, you are likely to do something like this:
int a[10] = {0}; // Just imagine this is 0,1,2,etc... int b[10] = {0}; for (int i=0; i < 10; i++) { b[i] = a[i]*2; }
A 1 to 1 correspondent might looks like ths:
a = range(10) # 0,1,2,etc... b = [] for x in a: b.append(x*2)
However in python, you can then simplify to this:
a = range(10) # Same as before, 0,1,2,etc... b = [x*2 for x in a] # This is also works b = [x*2 for x in [0,1,2,...]]
Remember that list comprehension is used to make a new list, not just iteration. If you want to do something other than making a list from another list, it is better to use iteration. List comprehension is just “syntactic sugar” so to speak. The concept comes from functional programming paradigm.
Great explanation! I don’t know too much C, just a bit here and there, and my dad’s copy of K&R C he gave to me.