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?
list.append
returnsNone
so what you’ve actually got is a list comprehension that generates a list containing the valueNone
19 times. (using functions with side effects, such aslist.append
, in list comprehensions are generally bad style so you should avoid this)list[...]
syntax retrieves elements from the list, which is not what you’re trying to do here. (and it is actually invalid syntax in this case)list
, because list is already a builtin.If you want to append the numbers 1 to 19 to a list as you’re trying to do you can call the
list.extend
function with the list comprehension[value for value in range(1, 20)]
as the argument. (Although in this case you can also just use the range directly.) To do it without list comprehensions you can simply loop over the range and repeatedly call the append function.