lambdas

Code-Stücke können hier veröffentlicht werden.
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

lambdas

Beitragvon Dookie » Sonntag 13. Oktober 2002, 00:23

Hallo,

wie wäre es mit einer Sammlung mehr oder weniger nützlcher lambdas?
Ich hab da gleich mal eines:

Code: Alles auswählen

eor_str = lambda x,y: reduce(lambda v, w: v+w, map(lambda t, u: chr(ord(t)^ord(u)),x,y))


Was macht das?
Es exclusivodert zwei gleichlange (!!!) Strings.

Das heist wenn mann z.B.

Code: Alles auswählen

c = eor_str(" Ja ", "Nein")
ausführt, enthält c 'n/\x08N'.

Macht mann jetzt ein

Code: Alles auswählen

print eor_str(" Ja ",c)
wird "Nein" ausgegeben.

Bei

Code: Alles auswählen

print eor_str("Nein",c)
entsprechend " Ja ".


Gruß

Dookie
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Donnerstag 17. Oktober 2002, 16:06

Kaufmännisches Runden

Code: Alles auswählen

import math
round = lambda x: math.floor(x+0.5+(0.0000000000000001*((not x) or (x/abs(x)))))


Der Ausdruck x/abs(x) liefert je nach Vorzeichen von x 1 oder -1. Das (not x) or ... davor verhindert bei x=0 einen ZeroDivisionError.


Gruß

Dookie
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Donnerstag 17. Oktober 2002, 17:00

Noch elegantere Lösung zum Runden von Voges:

Code: Alles auswählen

Runden = lambda x: int(x+ 0.5 * ((x > 0) or -1))


Allerdings macht die Eingebaute round(x[, n]) Funktion das ganze überflüssig :roll:

Gruß

Dookie
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Beitragvon Milan » Sonntag 24. November 2002, 10:26

berechen einer Variable in Abhängigkeit von einer Bedingung:

Code: Alles auswählen

lambda a,b,c: (a and [b] or [c])[0]


Wenn die Bedingung a wahr ist, ist das Ergebiss b, ansonsten c. Spart einen lästigen Block von If-Abfragen...

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder