Python yield Keyword



The Python, yield keyword is used to create a generator function. A type of function that is memory efficient and can be used like an iterator object. It is a case-sensitive keyword. In a function, it returns an expression or object

The yield statement of a function returns a generator object rather than just returning a value to the call of the function that contains the statement.

Syntax

Following is a syntax of the Python yield keyword −

def fun_name():
    statements
	yield expression 

Example

Following is a basic example of the Python yield keyword −

#defined generator
def fun1():
    yield "Hello"
    yield "Welcome"
    yield "To"
    yield "Tutorialspoint"
    
result_1 = fun1()
print(type(result_1))
#iterating through generator
for i in result_1:
    print(i)

Output

Following is the output of the above code −

<class 'generator'>
Hello
Welcome
To
Tutorialspoint

Using yield with tuple

The yield keyword returns a iterables like tuple, list, set etc..

Example

Here, we have created a generator named even which will return a even numbers in the form of tuple

def even(n):
    for i in range(n):
        if i%2==0:
            yield i
            
even_num = even(20)
print(tuple(even_num))

Output

Following is the output of the above code −

(0, 2, 4, 6, 8, 10, 12, 14, 16, 18)

Difference between yield and return

In Python, return and yield are both used to send values from a function, but they operate differently. The return exits the function and sends back a single value or object, immediately terminating the function's execution. whereas the yield is used in a generator function to pause the function's execution and send back a value, allowing the function to resume where it left off the next time it's called. This makes yield ideal for generating a sequence of values over time, while return is used for a single result or when the function needs to end.

Example

Here, we have defined both function and generator. The function return the a single value whereas, the generator returned a list of element −

#defined a function
def power(n):
    return n**2
#defined a generator    
def power_1(n):
    for i in range(n):
        yield i**2
		
result_1 = power(4)
result_2 = (list(power_1(4)))
print("Return :", result_1)
print("Yield :", result_2)

Output

Following is the output of the above code −

Return : 16
Yield : [0, 1, 4, 9]
python_keywords.htm
Advertisements
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy