my_list = [1,2,3,4,5,6,7,8,9,10]
gen_comp = (item for item in my_list if item > 3)
for item in gen_comp:
    print(item)
            Asked
            
        
        
            Active
            
        
            Viewed 89 times
        
    0
            
            
         
    
    
        Georgy
        
- 12,464
- 7
- 65
- 73
- 
                    1It's a tuple comprehension. That one creates a tuple containing every item in my_list that have a value > 3. – Mandera Jun 14 '20 at 12:04
- 
                    1@Mandera Wrong! There is no such thing as a ["tuple comprehension"](https://stackoverflow.com/questions/16940293/why-is-there-no-tuple-comprehension-in-python). This one is a [generator expression](https://docs.python.org/3/howto/functional.html#generator-expressions-and-list-comprehensions) and it doesn't create a tuple. – Georgy Jun 14 '20 at 12:28
- 
                    Probably a better duplicate target: [Generator Expressions vs. List Comprehension](https://stackoverflow.com/q/47789/7851470) – Georgy Jun 14 '20 at 12:32
- 
                    @Georgy Cool! Thank you – Mandera Jun 14 '20 at 12:34
1 Answers
1
            
            
        i added some comments, hope this help you:
# create a list with 10 elements
my_list = [1,2,3,4,5,6,7,8,9,10]
# generate a list based on my_list and add only items if the value is over 3
# this is also known as tuple comprehension 
# that one creates a tuple containing every item in my_list that have a value greater then 3. 
gen_comp = (item for item in my_list if item > 3)
# print the new generated list gen_comp
for item in gen_comp:
    print(item)
output:
4
5
6
7
8
9
10
 
    
    
        Stefan Schulz
        
- 533
- 3
- 8