this post was submitted on 25 Jun 2024
18 points (95.0% liked)

Python

5878 readers
20 users here now

Welcome to the Python community on the programming.dev Lemmy instance!

๐Ÿ“… Events

October 2023

November 2023

PastJuly 2023

August 2023

September 2023

๐Ÿ Python project:
๐Ÿ’“ Python Community:
โœจ Python Ecosystem:
๐ŸŒŒ Fediverse
Communities
Projects
Feeds

founded 1 year ago
MODERATORS
 

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
[โ€“] [email protected] 2 points 2 days ago* (last edited 2 days ago) (1 children)

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.

[โ€“] librejoe 1 points 2 days ago

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.