Dringend Hilfe bei kleinem Ausdruck

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

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

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 :)
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@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')
)
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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

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

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:)
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. ;-)
Antworten