Seite 1 von 1

Ausdruck ohne Listenkomprehension?

Verfasst: Dienstag 24. November 2015, 20:01
von sperez90
Liebe Python User

Ich habe noch eine kleine Frage. Wie würde man diesen Ausdruck ohne Listenkomprehension schreiben?

sorted([word.lower() for word in set(text6) if len(word) >= 4 and word[-3:] == 'ing'])

Wie bereits herausgefunden, erstellt die Funktion eine Liste mit kleingeschriebenen Wörter, welche gleich 4 oder mehr Zeichen haben und mit ing enden.
Wie könnte man dies ohne Listenkomprehension schreiben?
Danke im Voraus für eure Inputs.

LG Sperez

Re: Ausdruck ohne Listenkomprehension?

Verfasst: Dienstag 24. November 2015, 20:05
von Sirius3
@sperez90: Du kennst for-Schleifen und if-Abfragen. Wie würdest Du das also versuchen?

Re: Ausdruck ohne Listenkomprehension?

Verfasst: Dienstag 24. November 2015, 20:07
von BlackJack
@sperez90: Die Beschreibung stimmt nicht ganz — da hatte ich ja im anderen Thema eine Nachfrage geschrieben.

Zur Frage: Man lässt einfach die eckigen Klammern der „list comprehension“ weg und hat damit einen Generatorausdruck.

Re: Ausdruck ohne Listenkomprehension?

Verfasst: Dienstag 24. November 2015, 20:44
von sperez90
Lieber Blackjack

Du hast nicht ganz Unrecht ;) ich mache eine Art Weiterbildung in diesem Bereich. Aber irgendwie komme ich nicht ganz nach mit der Python Logik.
Nun ich bin auf folgende Lösung gestossen: Die sieht meines Erachtens ganz gut aus:

Code: Alles auswählen

def inglist(text6):
               list_def = []
               for word in set(text6):
                    if len(word) >= 4 and word[-3:] == 'ing':
                       list_def.append(word.lower())
              return sorted(list_def)
Mein Grundgedanke war, dass ich eine Funktion definiere und eine Leere Liste erstelle. Mit der For-Schlaufe füge ich dann die Wörter ein, die diese Kriterien erfüllen. :) Ich hoffe, dass ist mal ein einigermassen guter Ansatz.

Re: Ausdruck ohne Listenkomprehension?

Verfasst: Dienstag 24. November 2015, 20:50
von noisefloor
Hallo,
Ich hoffe, dass ist mal ein einigermassen guter Ansatz.
Schon. Aber die List Comprehension ist eleganter und ziemlich sicher auch schneller.

NACHTRAG: und du kannst die LC ja auch in eine Funktion packen...

Gruß, noisefloor

Re: Ausdruck ohne Listenkomprehension?

Verfasst: Dienstag 24. November 2015, 20:58
von sperez90
Könnt Ihr mir irgendwelche Tipps geben? Gibt es irgend ein bestimmtes besonders gutes Buch um sich Pythonkenntnisse Schritt für Schritt anzueignen?:)

Re: Ausdruck ohne Listenkomprehension?

Verfasst: Dienstag 24. November 2015, 21:17
von noisefloor
Hallo,

Buchrezensionen findest du z.B. in größerer Auswahl bei freiesMagazin.

Ansonsten ist das offizielle Python Tutorial und Lern Python the hard way immer eine gute Wahl.

Gruß, noisefloor

Re: Ausdruck ohne Listenkomprehension?

Verfasst: Dienstag 24. November 2015, 21:43
von cofi
Und fuer deine spezielle Domaene gibt es noch NLTK: http://www.nltk.org/book_1ed/