Seite 1 von 1

Dringend Hilfe bei kleinem Ausdruck

Verfasst: Dienstag 24. November 2015, 18:32
von sperez90
Hallo Liebe Python Gemeinde

Ich bin noch ein Anfänger. Und brauche Hilfe bei einem Python Ausdruck. Ich möchte Interpretieren, was dieser genau Ausführt. Irgendwie habe ich aber damit meine Mühe.
Der Ausdruck lautet:

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

also Zum einen verstehe ich, dass eine Menge erstellt wird, darin werden die Wörter klein geschrieben(lower) und sortiert. Nur die If Bedingung verstehe ich nicht ganz.

Kann mir da jemand weiterhelfen?
Ich danke im Voraus

LG Sperez

Re: Dringend Hilfe bei kleinem Ausdruck

Verfasst: Dienstag 24. November 2015, 18:49
von sperez90
kleine Korrektur: Der Ausdruck lautet:

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

len() wurde vorhin ausgelassen :)

Re: Dringend Hilfe bei kleinem Ausdruck

Verfasst: Dienstag 24. November 2015, 18:56
von mutetella
@sperez90
`sorted` erstellt eine Liste, dessen Elemente aus kleingeschriebenen Wörtern besteht, die aus 4 oder mehr Zeichen bestehen und auf 'ing' enden. Diese Wörter stammen aus einem Set.

Allerdings ist der Vergleich auf die Wortlänge ``if word >= 4 ...`` so nicht richtig und auch die Wortendung lässt sich besser prüfen:

Code: Alles auswählen

sorted(
    word.lower() for word in set(text6)
    if len(word) >= 4 and word.endswith('ing')
)

Re: Dringend Hilfe bei kleinem Ausdruck

Verfasst: Dienstag 24. November 2015, 18:59
von cofi
Es wird eine _Liste_ (kein Menge, Mengen kann man nicht sortieren) erstellt und es werden nur Woerter aus der Ursprungsmenge der Woerter aufgenommen, wenn sie mehr als 4 Zeichen haben und auf "ing" enden.

Das Stichwort ist "List Comprehension".

Re: Dringend Hilfe bei kleinem Ausdruck

Verfasst: Dienstag 24. November 2015, 19:02
von BlackJack
Wobei ich mir gerade die Frage stelle ob es so gewollt ist das ein Wort das die Bedingungen erfüllt und sich nur durch die Gross/Kleinschreibung unterscheidet mehr als einmal im Ergebnis vorkommen kann, das aber immer komplett in Kleinbuchstaben‽

Re: Dringend Hilfe bei kleinem Ausdruck

Verfasst: Dienstag 24. November 2015, 19:36
von sperez90
Vielen Dank für euren Input. Mich hat vor allem die If Condition mit dem Teil word[-3:]. Bedeutet das einfach, das von hinten die Buchstabenposition ermittelt wird? und dann dort dieses "ing" angehängt wird?
Danke nochmals:)

Re: Dringend Hilfe bei kleinem Ausdruck

Verfasst: Dienstag 24. November 2015, 19:42
von sperez90
Dieser set Ausdruck verwirrt mich ebenfalls. Bedeutet set nicht, dass eine Menge erstellt wird?
Was würde beispielsweise passieren wenn ich den Funktionsausruf set() nicht auf text6, sondert auf sorted([...]), gibt es da einen Unterschied?
Danke im Voraus für eure Antwort:)

Re: Dringend Hilfe bei kleinem Ausdruck

Verfasst: Dienstag 24. November 2015, 20:09
von BlackJack
@sperez90: Natürlich wäre das ein Unterschied. Ich habe irgendwie langsam das Gefühl wir lösen hier Hausaufgaben für jemanden der Linguistik oder etwas verwandtes studiert. ;-)