Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.python > #4328 > unrolled thread
| Started by | Christopher Arndt <chris@chrisarndt.de> |
|---|---|
| First post | 2016-03-25 00:40 +0100 |
| Last post | 2016-03-25 00:40 +0100 |
| Articles | 1 — 1 participant |
Back to article view | Back to de.comp.lang.python
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [Python-de] Schleifen die ohne Durchlaufen des Schleifenkörpers beendet wurden Christopher Arndt <chris@chrisarndt.de> - 2016-03-25 00:40 +0100
| From | Christopher Arndt <chris@chrisarndt.de> |
|---|---|
| Date | 2016-03-25 00:40 +0100 |
| Subject | Re: [Python-de] Schleifen die ohne Durchlaufen des Schleifenkörpers beendet wurden |
| Message-ID | <mailman.121.1458862836.2244.python-de@python.org> |
[Multipart message — attachments visible in raw view] — view raw
Am 24.03.2016 um 23:46 schrieb Diez B. Roggisch:
> Huh, im Zeitalter von ternary if’s noch den OR-Trick ;)
Der "OR-Trick" ist auch in Zeiten von "expr if expr else expr" noch des
öfteren hilfreich weil oft kürzer. Er ist ja eigentlich nur eine andere
Form von "expr1 if expr1 else expr2" (wobei expr1 nur einmal evaluiert
wird).
Was man nicht mehr verwenden sollte, ist "expr and non-false-expr or expr".
> Ich denke wenn wuerde ich das eher kapseln in ein
>
> def loop_or_else(iterable, sideeffect):
> looped = False
> for item in iterable:
> looped = True
> yield item
> if not looped:
> sideeffect()
Wenn man weiß, dass ein bestimmter Wert niemals ein Element des
Iterables sein wird, kann man das auch so verkürzen:
i = SENTINEL
for i in collection:
do_item(i)
if i == SENTINEL:
and_now_for_something_completely_different()
Ist immerhin nur eine Zeile mehr als die usprl. geforderte Lösung.
Back to top | Article view | de.comp.lang.python
csiph-web