Seite 1 von 1

Wort variieren in groß oder klein

Verfasst: Freitag 4. September 2009, 10:33
von The Spirit
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

Verfasst: Freitag 4. September 2009, 10:40
von Redprince
[mod]itertools[/mod] mit seinen Combinatoric generators klingt doch cool, he?

Verfasst: Freitag 4. September 2009, 10:45
von Hyperion
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.

Verfasst: Freitag 4. September 2009, 10:52
von Leonidas

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 :)

Verfasst: Freitag 4. September 2009, 12:22
von sma
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