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