Learn how Python's yield keyword transforms functions into generators, enabling lazy evaluation and memory-efficient code. Complete explanation with examples.