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?

you are viewing a single comment's thread
view the rest of the comments
[โ€“] [S] 1 point 2 years ago (1 child)

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.

  • source
  • parent
  • hideshow 2 child comments
  • [โ€“] 2 points 2 years ago* (1 child)

    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.

  • source
  • parent
  • hideshow 2 child comments