Wort variieren in groß oder klein

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
The Spirit
User
Beiträge: 276
Registriert: Freitag 8. Juni 2007, 08:50
Wohnort: 84xxx Bereich
Kontaktdaten:

Hi.
Ich habe ein Problem.
Ich möchte alle möglichkeiten eines Wortes herausfinden, bei dem jeder buchstabe groß oder klein geschrieben werden kann.

Als Beispiel:

foo:

möglichkeiten:
1. foo
2. Foo
3. fOo
4. foO
5. FOo
6. FoO
7. fOO
8. FOO

Gibt es hier schon was in python oder muss ich mir da was schreiben?
Thx
Redprince
User
Beiträge: 128
Registriert: Freitag 22. Oktober 2004, 09:22
Wohnort: Salzgitter
Kontaktdaten:

[mod]itertools[/mod] mit seinen Combinatoric generators klingt doch cool, he?
I am not part of the allesburner. I am the [url=http://allesburner.de]allesburner[/url].
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Mal ganz vorsichtig angefragt: Willst Du eine Art case insensitives Parsing implementieren? Wenn ja, braucht man die Kombis nicht, sondern konvertiert den String eben in Klein- oder Großbuchstaben.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Code: Alles auswählen

from itertools import chain, product, combinations

print [''.join(chain.from_iterable(comb))
    for comb in product(
        combinations('Ff', 1),
        combinations('Oo', 1),
        combinations('Oo', 1)
    )]
Den Code zu verstehen lasse ich mal als Übung für den Leser stehen :)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Wenn's 'ne Hausaufgabe ist, hätte ich gerne 30% der Punkte...

Code: Alles auswählen

def multicase(s):
    if s:
        for w in multicase(s[1:]):
            yield s[0].lower() + w
            yield s[0].upper() + w
    else:
        yield ""
Stefan
Antworten