Seite 1 von 1

Suche Funktion die eine Liste mit Buchstaben zurückliefert

Verfasst: Dienstag 19. November 2002, 10:27
von tj
Hallo,

ich bin gerade am suchen ob es eine Funktion gibt, die ähnlich wie range() eine Liste mit Zahlen liefert, mir eine Liste mit Buchstaben zurückgibt. Also range(a,z) oder so ähnlich.

gibt es da etwas?

mfg
tj

Re: Suche Funktion die eine Liste mit Buchstaben zurückliefe

Verfasst: Dienstag 19. November 2002, 11:09
von Voges
Hallo!
tj hat geschrieben:ich bin gerade am suchen ob es eine Funktion gibt, die ähnlich wie range() eine Liste mit Zahlen liefert, mir eine Liste mit Buchstaben zurückgibt. Also range(a,z) oder so ähnlich.
Puh, keine Ahnung. Irgendwie meine ich, es gäbe sowas, aber das kann auch bei Perl gewesen sein. Vielleicht weiß sonst jemand was.
Meine Vorschläge aus dem Handgelenkt:

Code: Alles auswählen

# brute force
for ch in list("ABCDEFGHIJKLMNOPQRSTUVWXYZ"):
    print ch

# politisch korrekt
for ch in map(lambda x: chr(x),range(ord('A'),ord('Z')+1)):
    print ch 
Letzteres ließe sich natürlich problemlos in einer range()-ähnlichen Funktion kapseln.

Jan

Verfasst: Dienstag 19. November 2002, 13:08
von tj
Hallo Voges,

danke für deine Antwort.

So etwas ähnliches wie deine Codebeispiele habe ich mir mitlerweile auch zusammengebaut. Ist zwar nicht ganz das was ich haben wollte aber es erfüllt seinen Zweck.

Sollte jemand die Funktion kennen immer her damit :wink:

mfg
tj

Verfasst: Dienstag 19. November 2002, 13:58
von Dookie
Hallo tj,

simple Version:

Code: Alles auswählen

charrange = lambda a, b: reduce(lambda x, y: x+chr(y), range(ord(a),ord(b)+1),"")
extendet Version, damit lassen sich auch verdrehte Strings erzeugen:

Code: Alles auswählen

>>> charrange = lambda a, b: reduce(lambda x, y: x+chr(y), range(ord(a),ord(b)+((a <= b) or -(b < a)),(a <= b) or -(b < a)),"")
>>> charrange("a", "z")
'abcdefghijklmnopqrstuvwxyz'
>>> charrange("z", "a")
'zyxwvutsrqponmlkjihgfedcba'
Gruß

Dookie

Von PWGen

Verfasst: Montag 2. Dezember 2002, 13:01
von akIra
Heya,
ich habe mal einen Password Generator geschrieben.

Mögliche Zeichen per Randomize aus Liste chars, sieht dann wie folgt aus.

Code: Alles auswählen

def build_schars():                                       #Spezial Zeichen
    global chars
    for x in range(33,48): chars.append(chr(x))
    for x in range(58,65): chars.append(chr(x))
    for x in range(91,97): chars.append(chr(x))

def build_nchars():                                       #Nummern
    global chars
    for x in range(48,58): chars.append(chr(x))

def build_uchars():                                       #Grossbuchstaben
    global chars
    for x in range(65,91): chars.append(chr(x))

def build_lchars():                                       #Kleinbuchstaben
    global chars
    for x in range(97,123): chars.append(chr(x))
Vielleicht hilft es,
akI