(This is my first time posting on any Python list; I've tried to search for 
this idea and didn't find it but if I looked in the wrong places/this has 
already been discussed I apologize and feel free to tell me!)

Say you have a list and you want to perform some operation on each item in the 
list - but you don't need to store the result in a list.

There are three simple ways of doing this, at least as far as I know: 
([print(item)] could be any expression, just using it as an example)

```
lst = [1, 2, 3, 4]

#1 
for item in lst:
    print(item)

# 2
[print(item) for item in lst]

# 3
for item in lst: print(item)
```

#1 - In my opinion, this should be a one line operation so #1 is not ideal.
#2 - It also shouldn't require storing results in array, to save time/memory, 
so #2 is out. 
#3 - I think #3 is just not good syntax, it seems very unpythonic to me - it 
breaks the norm that blocks go on their own lines. It does seem the best of the 
three though and I know my assessment is kind of subjective.

I'm wondering if a possible alternative syntax could be a for-expression, like 
there's if-expressions, which always evaluates to None:
```
print(item) for item in lst
```

A more practical example of when this would be useful is extending list-2 with 
a modified version of list-1 - this syntax would avoid creating an intermediate 
list (not sure if the way lists are implemented in python removes this 
advantage by the way it resizes lists though).

```
lst1 = [1, 2, 3]
lst2 = [4, 5, 6]
lst1.append(item * 2) for item in lst1
```
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/KMEX5FKXUJYSQ2WAEYLQYNQBOT2LBXCI/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to