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


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

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

From "Diez B. Roggisch" <deets@web.de>
Newsgroups de.comp.lang.python
Subject Re: [Python-de] Schleifen die ohne Durchlaufen des Schleifenkörpers beendet wurden
Date 2016-03-24 23:46 +0100
Message-ID <mailman.115.1458859592.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>

Show all headers | View raw


[Multipart message — attachments visible in raw view] - view raw

Huh, im Zeitalter von ternary if’s noch den OR-Trick ;)

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()

und dann halt

for dings in loop_or_else(bums, peng):
     ….

Aber so richtig dolle ist das nun auch nicht, wenn peng nicht nur ein lambda gross ist.

Diez

> On 24 Mar 2016, at 22:22, Dinu Gherman <gherman@darwin.in-berlin.de> wrote:
> 
> Diez B. Roggisch:
> 
>> Aber for/else… hach, das waere schon schoen gewesen.
> 
> Wohl wahr... Nicht schön, aber quasi-funktional ist vielleicht Folgendes:
> 
> 
> In [1]: def do(item): print(item)
> 
> In [2]: def empty(): print('no luck')
> 
> In [3]: _ = len([do(item) for item in [1, 2, 3]]) or empty()
> 1
> 2
> 3
> 
> In [4]: _ = len([do(item) for item in []]) or empty()
> no luck
> 
> 
> Die Zuweisung nur, damit es keine Ausgabe gibt...
> 
> Gruß,
> 
> Dinu
> 

Back to de.comp.lang.python | Previous | Next | Find similar


Thread

Re: [Python-de]  Schleifen die ohne Durchlaufen des Schleifenkörpers beendet wurden "Diez B. Roggisch" <deets@web.de> - 2016-03-24 23:46 +0100

csiph-web