Suche Funktion die eine Liste mit Buchstaben zurückliefert

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

Suche Funktion die eine Liste mit Buchstaben zurückliefert

Beitragvon tj » Dienstag 19. November 2002, 10:27

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
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

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

Beitragvon Voges » Dienstag 19. November 2002, 11:09

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
tj

Beitragvon tj » Dienstag 19. November 2002, 13:08

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
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Dienstag 19. November 2002, 13:58

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
akIra

Von PWGen

Beitragvon akIra » Montag 2. Dezember 2002, 13:01

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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder