Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Tim Landscheidt Newsgroups: de.comp.lang.python Subject: Re: [Python-de] Verstaendnis-Frage zu yield und Liste dahinter Date: Wed, 19 Mar 2025 20:51:06 +0000 Organization: https://www.tim-landscheidt.de/ Lines: 66 Message-ID: <87v7s4eocl.fsf@vagabond.tim-landscheidt.de> References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: individual.net TEkMTQ9yoU6BvY+jAS1nWg0hA/85meG2q0CJYE7utGizPqI68U Cancel-Lock: sha1:kd8eCKXnhgwNRksMxIWX4h7FA5Q= sha1:RKkLO1vZnuC/o6rDGP+vFusQKHE= sha256:QEM24SydZggHwrAf7/kFcwuymGT7bBXi29YU+3KWCU0= User-Agent: Gnus/5.13 (Gnus v5.13) Xref: csiph.com de.comp.lang.python:6258 Christian Winther wrote: > ich arbeite mich gerade ein bisschen in Python ein. > Ich habe hier Funktionen vorliegen ähnlich diesen hier: > def parse_was(info): > parsed = {} > info1, info2 = info > for idx, info1 in enumerate(info1): > name, status, cpu = info1 > ... > parsed[name] = { > "status": map.get(status, status_unknown).value, > "cpu_percent": float(cpu), > ... > } > return parsed > def mach_was(parsed): > for name, value in parsed.items(): > if value["cpu_percent"] is not None: > yield name, {} > ---------------- > Frage: > Was gibt > yield name, {} > zurück? > Speziell: Was macht/beinhaltet der Ausdruck: {} „{}“ ist ein leeres „dictionary“ (https://docs.python.org/3/tutorial/datastructures.html#dictionaries). Die yield-Anweisung gibt jeweils ein Tupel mit zwei Werten zurück, von denen der erste der Wert von name ist und der zweite ein leeres dictionary. Einfacheres Beispiel: | >>> def test_yield(): | ... yield 'a', {} | ... yield 'b', {} | ... yield 'c', {} | ... | >>> for r in test_yield(): | ... print(repr(r)) | ... | ('a', {}) | ('b', {}) | ('c', {}) | >>> for r1, r2 in test_yield(): | ... print(repr(r1), repr(r2)) | ... | 'a' {} | 'b' {} | 'c' {} | >>> Tim