Ausdruck ohne Listenkomprehension?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
sperez90
User
Beiträge: 7
Registriert: Dienstag 24. November 2015, 18:10

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
Sirius3
User
Beiträge: 17826
Registriert: Sonntag 21. Oktober 2012, 17:20

@sperez90: Du kennst for-Schleifen und if-Abfragen. Wie würdest Du das also versuchen?
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.
sperez90
User
Beiträge: 7
Registriert: Dienstag 24. November 2015, 18:10

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.
Zuletzt geändert von Anonymous am Dienstag 24. November 2015, 21:37, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
Benutzeravatar
noisefloor
User
Beiträge: 3882
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

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
sperez90
User
Beiträge: 7
Registriert: Dienstag 24. November 2015, 18:10

Könnt Ihr mir irgendwelche Tipps geben? Gibt es irgend ein bestimmtes besonders gutes Buch um sich Pythonkenntnisse Schritt für Schritt anzueignen?:)
Benutzeravatar
noisefloor
User
Beiträge: 3882
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

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
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Und fuer deine spezielle Domaene gibt es noch NLTK: http://www.nltk.org/book_1ed/
Antworten