Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #4328

Re: [Python-de] Schleifen die ohne Durchlaufen des Schleifenkörpers beendet wurden

Path csiph.com!goblin3!goblin.stu.neva.ru!news.tu-darmstadt.de!fu-berlin.de!uni-berlin.de!not-for-mail
From Christopher Arndt <chris@chrisarndt.de>
Newsgroups de.comp.lang.python
Subject Re: [Python-de] Schleifen die ohne Durchlaufen des Schleifenkörpers beendet wurden
Date Fri, 25 Mar 2016 00:40:01 +0100
Lines 82
Message-ID <mailman.121.1458862836.2244.python-de@python.org> (permalink)
References <56F445C9.3000200@mail.de> <CAMSP2L7OBP5h4yjrRrx4XuvwE3UMTg=grZqPzJ7B9ZEyYYXD5A@mail.gmail.com> <E7199327-B882-4691-A703-351C20DFE173@web.de> <A201B172-63F7-484B-80FB-EB92999275A7@darwin.in-berlin.de> <533CBF60-D919-4211-8155-ACC90B848839@web.de>
Mime-Version 1.0
Content-Type multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="xd1siuNjPAFkq3m28q4HQeXj7EcTWSTK8"
X-Trace news.uni-berlin.de XKBXnGjIqUSstMSk+yOG1gXG+HnD8evoT0g/A9bUcXTA==
Return-Path <chris@chrisarndt.de>
X-Original-To python-de@python.org
Delivered-To python-de@mail.python.org
X-Virus-Scanned Debian amavisd-new at mx1.0x20.eu
Openpgp id=F0BA1EAE86651989C0A1C9901E0D97B33A4E1F31
User-Agent Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.0
In-Reply-To <533CBF60-D919-4211-8155-ACC90B848839@web.de>
X-BeenThere python-de@python.org
X-Mailman-Version 2.1.21
Precedence list
List-Id Die Deutsche Python Mailingliste <python-de.python.org>
List-Unsubscribe <https://mail.python.org/mailman/options/python-de>, <mailto:python-de-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-de/>
List-Post <mailto:python-de@python.org>
List-Help <mailto:python-de-request@python.org?subject=help>
List-Subscribe <https://mail.python.org/mailman/listinfo/python-de>, <mailto:python-de-request@python.org?subject=subscribe>
Xref csiph.com de.comp.lang.python:4328

Show key headers only | View raw


[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 de.comp.lang.python | Previous | Next | Find similar


Thread

Re: [Python-de]  Schleifen die ohne Durchlaufen des Schleifenkörpers beendet wurden Christopher Arndt <chris@chrisarndt.de> - 2016-03-25 00:40 +0100

csiph-web