[Python-de] flache Liste

Hartmut Goebel h.goebel at goebel-consult.de
Mon Jul 4 14:04:39 CEST 2005


Henning.Ramm at mediapro-gmbh.de schrieb:

> Ok, jetzt kann ich map(lambda... ersetzen.
> Geht es auch mit filter(lambda... ?

Ja.

> [ x if x in [1,2,3] for x in l ]

Fast. Richtig ist:

[ x for x in l if x in [1,2,3] ]

> geht ja leider nicht, auch nicht mit Klammern.

Da hilft dann ein Blick in die Tuorien, die Doku und norfalls in die
Syntax-Definition :-)

> Für mich sieht es so aus, dass man mit ihnen flexibler ist,
> weil man einen Generator als Funktionsreferenz verwenden kann
> (was bei map wohl nicht geht) - aber das brauche ich hier
> ja nicht.

Natürlich kann man map als Funktionsreferenz benutzen, wenn auch nicht
so, wie Du meinst :-)

   mymap = map
   map = ashdfkjahdfkj

"Als Funktionreferenz verwendbar" ist aber nicht der Grund für
Generatoren. Dann das könnte man auch anders lösen:

  def map_my_data(liste)
     return map(lamba x: x[], liste)

Mehr informationen zu Generatoren findest Du in
<http://www.python.org/doc/2.3/whatsnew/section-generators.html> und
<http://www.python.org/peps/pep-0255.html>.

-- 
Schönen Gruß - Regards
Hartmut Goebel

| Hartmut Goebel             | IT-Security -- effizient |
| h.goebel at goebel-consult.de | www.goebel-consult.de    |