Bedingung mit mehreren TRUE Faellen

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
h0rnung
User
Beiträge: 46
Registriert: Mittwoch 28. Mai 2014, 11:41

Servus zusammen,

ein vermutlich relativ einfaches Problem plagt mich. Dabei geht es um die Suche nach mehreren bestimmten Buzzwords in einem Text.

In meinem Fall sieht der aktuell funktionierende Code so aus. Dieser funktioniert aber nur mit einem Buzzword:

Code: Alles auswählen

twitterStream.filter(track=["Oracle"])
Ich haette aber gerne, dass diese Bedingung auch bei 'oracle' und 'ORACLE' ein TRUE zurueckgibt. Quasi so:

Code: Alles auswählen

twitterStream.filter(track in ["Oracle","ORACLE","oracle"])
Danke und Gruesse

-> Rueckfragen immer gerne :)
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@h0rnung
Wenn es sich nur um verschiedene Groß-/Kleinbuchstaben handelt:

Code: Alles auswählen

>>> word = 'tESt'
>>> word.lower() == 'test'
True
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
BlackJack

@h0rnung: Ob das überhaupt geht und wenn ja wie, hängt davon ab was die API die Du verwendest da zur Verfügung stellt. Du kannst da ja gar keine *Bedingungen* angeben, sondern offenbar eine Liste mit Wörtern‽ Schon probiert da einfach alle Schreibweisen reinzuschreiben?
Malachite
User
Beiträge: 34
Registriert: Sonntag 24. Juni 2012, 13:43
Wohnort: Berlin

Code: Alles auswählen

twitterStream.filter(track in ["Oracle","ORACLE","oracle"])
Das macht wahrscheinlich nicht das, was du denkst. Es wertet erst den in-Ausdruck aus und gibt das Ergebnis (True/False) an die Funktion twitterStream.filter weiter. Was du vermutlich willst ist das hier:

Code: Alles auswählen

twitterStream.filter(track=(track if track.lower() == "oracle" else "???"))
BlackJack

@Malachite: Das macht genau das selbe: Es wertet erst den Ausdruck aus und übergibt dann das Ergebnis als Argument für `track`. In beiden Fällen wird es aber wohl an einem `NameError` scheitern weil `track` nicht definiert ist.
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

@Malachite: Guggst Du hier.
h0rnung
User
Beiträge: 46
Registriert: Mittwoch 28. Mai 2014, 11:41

Herzlichen Dank an alle! Wieder viel gelernt...

... einfachste Loesung und beste Erklaerung hat @BlackJack geliefert. Es handelt sich hier wohl schon um eine Liste, d.h. ich kann die Argumente einfach mit Komma aneinanderreiehen.

Vor lauter Baeumen usw... Danke fuer die Hilfe!
Antworten