Wie funktioniert dieses Lambda / Ertrag / Generator-Verständnis?

Ich habe heute meine Codebasis durchgesehen und Folgendes gefunden:

def optionsToArgs(options, separator='='):
    kvs = [
        (
            "%(option)s%(separator)s%(value)s" %  
            {'option' : str(k), 'separator' : separator, 'value' : str(v)}
        ) for k, v in options.items()
    ]
    return list(
        reversed(
            list(
                    (lambda l, t: 
                        (lambda f: 
                            (f((yield x)) for x in l)
                        )(lambda _: t)
                    )(kvs, '-o')
                )
            )
        )

Es scheint, als würde ein Diktat von Parametern in eine Liste von Parametern für einen Shell-Befehl umgewandelt. Es sieht so aus, als würde der Ertrag in einem Generatorverständnis verwendet, was ich für unmöglich hielt ...?

>>> optionsToArgs({"x":1,"y":2,"z":3})
['-o', 'z=3', '-o', 'x=1', '-o', 'y=2']

Wie funktioniert es?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage