Hallo Leute,
ich habe folgendes Problem, ich habe eine Liste von Worten und einen Satz von Buchstaben. Nun möchte ich alle Worte aus meiner Liste haben, die in unbestimmter Reihenfolge die Buchstaben enthalten.
Beispiel:
liste ['Hallo','das','ist','ein','Test']
Buchstabe(n) s
dabei sollten alle Worte gefunden werden die ein s enthalten.
liste ['Hallo','das','ist','ein','Test']
Buchstabe(n) s a
Hier sollte nur 'das' gefunden werden.
Ich bin mir ziemlich sicher, dass man das mit regulären Ausdrücken machen kann.
Davon hab ich aber leider wenig bis keine Ahnung.
Ihr braucht mir nicht unbedingt die Lösung aufschreiben (wäre aber nett ) eine Tipp was ich mir besonders angucken sollte würde reichen!
Danke und Gruß
hardez
Ein Wort auf bestimmte Buchstaben untersuchen
Ups, falsch die Beschreibung gelesen^^
Aber unten steht ja schon die Lösung
Aber unten steht ja schon die Lösung
Zuletzt geändert von ms4py am Sonntag 20. Juni 2010, 09:56, insgesamt 2-mal geändert.
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher
http://ms4py.org/
Gerhard Kocher
http://ms4py.org/
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Code: Alles auswählen
>>> a = ['Hallo','das','ist','ein','Test']
>>> [elem for elem in a if "s" in elem]
['das', 'ist', 'Test']
>>> [elem for elem in a if all(("s" in elem, "a" in elem))]
['das']
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
Code: Alles auswählen
worte = ['Hallo','das','ist','ein','Test']
buchstabe = 's'
print [i for i in worte if buchstabe in i]
buchstaben = 'sa'
elemente = set(worte)
for buchstabe in buchstaben:
elemente &= set([i for i in elemente if buchstabe in i])
print elemente
Code: Alles auswählen
In [1483]: xs = ['Hallo', 'das', 'ist', 'ein', 'Test']
In [1484]: a = set('sa')
In [1485]: [x for x in xs if a < set(x)]
Out[1485]: ['das']
Kryptisch ist vielleicht das von `set` übeladene ``<``, aber das kann man auch als Methodennamen ausschreiben wenn man möchte:
Ansonsten sind "list comprehensions" oder Generatorausdrücke Standardhandwerkzeuge in Python, die man zumindest erkennen und lesen können sollte.
Code: Alles auswählen
In [1488]: [x for x in xs if a.issubset(x)]
Out[1488]: ['das']
Code: Alles auswählen
xs = ['Hallo', 'das', 'ist', 'ein', 'Test', 'as']
a = set('sa')
print [x for x in xs if a <= set(x)]