Search notes:

Python: yield from

Simple example

This Stackoverflow answer was helpful to understand Python: yield statement from:
def yieldXYZ():

    yield 'X'
    yield 'Y'
    yield 'Z'


def yieldFromYieldXYZ():

    for i in range(3):
        yield from yieldXYZ()


for x in yieldFromYieldXYZ():            
    print(x)
When executed, it prints
X
Y
Z
X
Y
Z
X
Y
Z

Modifying yielded elements

In the following example, the function squaredNubmers uses yield from to create lists with two elements: the first is the number yielded from numbers while the second one is the number squared:
def numbers():
    yield  7
    yield 28
    yield 12
    yield  3


def squaredNubmers():
    yield from ( [x, x**2] for x in numbers() )


for i in squaredNubmers():
    print(f'{i[0]} -> {i[1]}')
I am not sure if this is a form of list comprehension.

Flattening nested lists

def flatten(listOrElem):

    if isinstance(listOrElem, list):
       for x in listOrElem:
           yield from flatten(x)

    else:
       yield listOrElem


for i in flatten( [ 1, ['a', 'b', ['I', 'II', 'III', 'IV' ], 'c' ], 2, 3] ):
    print(i)

Index

Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 8 attempt to write a readonly database in /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php:78 Stack trace: #0 /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php(78): PDOStatement->execute(Array) #1 /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php(30): insert_webrequest_('/notes/developm...', 1758207170, '216.73.216.150', 'Mozilla/5.0 App...', NULL) #2 /home/httpd/vhosts/renenyffenegger.ch/httpsdocs/notes/development/languages/Python/statements/yield/from(97): insert_webrequest() #3 {main} thrown in /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php on line 78