Seite 2 von 2

Verfasst: Montag 15. Januar 2007, 10:52
von birkenfeld
sape hat geschrieben: ``map`` einspricht ``[f(x) for x in seq]``
Äh, nein. ``map(f, seq)`` ist die Entsprechung. Und häufig findest du keine passende Funktion, die man für `f` setzen kann, und musst deshalb im Falle von map() ein lambda benutzen.

Verfasst: Montag 15. Januar 2007, 10:52
von sape
cracki hat geschrieben:<offtopic>
sape, da hab ich noch ne frage zu:
http://www.python-forum.de/post-55407.html#55407
</offtopic>
Ja dann stelle sie doch ;) Wie ich schon geschriben ahbe, willst du was anderes testen als ich. Du gehst von einer Iterativen Variante aus, wo der unterscheide einer Interpolations- zwischen einer Additivenvariante geteste wird. Was völlig anderes als ich testen wollte ;)

Und warum wirfst du das gerade in diesen Thread ein? gehört doch nicht hier rein. Wenn du fragen hast stelle sie in dem Thread.

Verfasst: Montag 15. Januar 2007, 10:57
von sape
birkenfeld hat geschrieben:
sape hat geschrieben: ``map`` einspricht ``[f(x) for x in seq]``
Äh, nein. ``map(f, seq)`` ist die Entsprechung. Und häufig findest du keine passende Funktion, die man für `f` setzen kann, und musst deshalb im Falle von map() ein lambda benutzen.
Jepp genau und von da habe ich das.

http://www.tfh-berlin.de/~rweis/vorlesu ... mieren.pdf

Verfasst: Montag 15. Januar 2007, 10:57
von BlackJack
birkenfeld hat geschrieben:[map()] Und häufig findest du keine passende Funktion, die man für `f` setzen kann, und musst deshalb im Falle von map() ein lambda benutzen.
Oder eine benannte Funktion schreiben, was ich persönlich dann lieber mache.

Verfasst: Montag 15. Januar 2007, 11:00
von birkenfeld
sape hat geschrieben:
birkenfeld hat geschrieben: Äh, nein. ``map(f, seq)`` ist die Entsprechung. Und häufig findest du keine passende Funktion, die man für `f` setzen kann, und musst deshalb im Falle von map() ein lambda benutzen.
Jepp genau und von da habe ich das.

http://www.tfh-berlin.de/~rweis/vorlesu ... mieren.pdf
Und was hast du dann gegen LCs, wo man eben kein lambda benutzen muss?

Verfasst: Montag 15. Januar 2007, 11:01
von cracki
denn in dem PDF steht nichts von lambda+LC

Verfasst: Montag 15. Januar 2007, 11:22
von sape
cracki hat geschrieben:denn in dem PDF steht nichts von lambda+LC
Dan hast du nicht richtig gelesen oder verstanden was gemeint ist:
Wie Birkenfeld schon gesagt hat:
``map(f, seq)`` einspricht ``[f(x) for x in seq]`` (Sorry das ich in ``map`` das ``f, seq`` vorhin vergessen habe @Brikenfeld)
So, f kann sowohl eine Anonyme Funktion sein (``lambda`` erzeugt eine Anonyme Funktion) oder es kann eine "bekannte sein" (Z.B.: def f(): ...).

Verfasst: Montag 15. Januar 2007, 11:28
von sape
birkenfeld hat geschrieben:
sape hat geschrieben:
birkenfeld hat geschrieben: Äh, nein. ``map(f, seq)`` ist die Entsprechung. Und häufig findest du keine passende Funktion, die man für `f` setzen kann, und musst deshalb im Falle von map() ein lambda benutzen.
Jepp genau und von da habe ich das.

http://www.tfh-berlin.de/~rweis/vorlesu ... mieren.pdf
Und was hast du dann gegen LCs, wo man eben kein lambda benutzen muss?
Hmm, gute Frage. Vielleicht Gewohnheit. Ich benutze eigentlich für solche Sachen nie LCs sondern ``map`` oder ``imap`` oder sonstiges und da verwende ich gerne ``lambda``s.

Ok, nun hast du ja geklärt das man in LCs auf lambda verzichten kann. Aber wie du schon siehst habe ich mich da vorher bei der Definition von ``map`` an der von Rüdoger Weis gehalten. Und von diesem Standpunkt bin ich dann auch ausgegangen bei dem Thema "``map`` kann durch LC ersetzt werden". Daher meine Beispiel die auf dieser Definition beruhen.

Nun weiß ich es besser. Danke :)

lg
sape

Verfasst: Montag 15. Januar 2007, 11:38
von cracki
map(lambda x: expr, seq)
entspricht
[expr for x in seq]

glaub mir, ich versteh das schon.

Verfasst: Montag 15. Januar 2007, 11:54
von sape
cracki hat geschrieben:map(lambda x: expr, seq)
entspricht
[expr for x in seq]

glaub mir, ich versteh das schon.
[x]Du hast den Post nicht gelesen

Ausgangspost: http://www.python-forum.de/post-55501.html#55501
Deine Antwort: http://www.python-forum.de/post-55504.html#55504
Meine Antwort: http://www.python-forum.de/post-55506.html#55506

Hier der Screenshot:
Bild

Und wie gesagt bezeichnet f genauso eine Anonymefunktion, Z.B.:

Code: Alles auswählen

lambda x: x+x
Die man auch an an einen Namen binden kann

Code: Alles auswählen

f = lambda x: x+x
wie auch eine "öffentliche":

Code: Alles auswählen

def f(x):
    return x+x
Daher verstehe ich die Antwort auch nicht:
cracki hat geschrieben:denn in dem PDF steht nichts von lambda+LC
Das da nicht "``map(f, seq)`` entspricht ``[(lambda x: ...)(x) for x in seq]``" steht weiß ich auch. Aber f kann wie gesagt auch Anonym sein.

:?

Verfasst: Montag 15. Januar 2007, 18:09
von mitsuhiko
Oh mein Gott. Der Thread geht ein in meine persönliche Hitliste. Irgendwo bei den Modelnina vs. qweet Diskussionen.

Ich glaub da braucht man wirklich nichts mehr zu schreiben oder? :x

Verfasst: Montag 15. Januar 2007, 19:04
von BlackJack
Lasst uns 'ne Assoziationskette anfangen und Börsenkurse raten. :-D