A generator expression is a concise way to create a generator without defining a full generator function. It produces items one by one, which is memory efficient for large data sets.
(expression for item in iterable [if condition])
# 1. Simple generator expression
gen = (x * x for x in range(5))
print(gen) # Output:
print(list(gen)) # Output: [0, 1, 4, 9, 16]
# 2. Generator expression with condition
gen = (x for x in range(10) if x % 2 == 0)
print(list(gen)) # Output: [0, 2, 4, 6, 8]
# 3. Using generator expressions with sum()
total = sum(x * 2 for x in range(5))
print(total) # Output: 20
# 4. Comparing list comprehension and generator expression
list_comp = [x * x for x in range(5)]
gen_exp = (x * x for x in range(5))
print(list_comp) # Output: [0, 1, 4, 9, 16]
print(gen_exp) # Output:
# 5. Iterating over a generator expression
gen = (x + 1 for x in range(3))
for val in gen:
print(val)
# Output:
# 1
# 2
# 3