Frage

Ich möchte jedem Buchstaben im Alphabet einen Wert zuweisen, sodass a -> 1, b -> 2, c -> 3, ...z -> 26.So etwas wie eine Funktion, die den Wert des Buchstabens zurückgibt, zum Beispiel:

value('a') = 1

value('b') = 2

usw...

Wie würde ich das in Python machen?

War es hilfreich?

Lösung

Sie möchten ein natives Python-Wörterbuch.

(und Sie möchten wahrscheinlich auch, dass Ihre Werte von "0" nicht von "1" beginnen, sodass Sie ein Hinzufügen von A +1 auf allen Ihren Zuordnungen, als balg)

Build mit diesem:

generasacodicetagpre.

Dies gilt syou Dinge wie:

generasacodicetagpre.

Natürlich könnten Sie wahrscheinlich die integrierte Funktion "Ord" verwenden und dieses Wörterbuch insgesamt überspringen, wie in den anderen Antworten:

generasacodicetagpre.

oder in Python 3.x oder 2.7 können Sie den Dicionary in einem einzelnen Durchgang mit einem Dict-Generator-Ausdruck erstellen:

generasacodicetagpre.

Andere Tipps

Wenn Sie nur Zeichen des ASCII-Alphabets Zahlen zuordnen möchten, können Sie Folgendes verwenden ord() und dann das Ergebnis anpassen:

>>> ord('a') - 96
1

Wenn Sie möchten, dass dies auch für Großbuchstaben funktioniert:

>>> ord('A'.lower()) - 96
1

Möglicherweise möchten Sie außerdem überprüfen, ob das Argument tatsächlich ein einzelnes ASCII-Zeichen ist:

>>> char = 'a'
>>> len(char) == 1 and char.isalpha() and 'a' <= char <= 'z'
True

Oder:

>>> import string
>>> len(char) == 1 and char in string.ascii_lowercase
True
generasacodicetagpre.

Verwenden Sie ein

generasacodicetagpre.

Sie sollten die Tatsache nutzen, dass 'A', 'B' usw. ASCII-Werte hinter ihnen haben.

generasacodicetagpre.

Daher könnten Sie so etwas tun:

generasacodicetagpre.

Warum nicht nur eine Liste jedes Buchstabens im Alphabet erstellen und dann die Indexwerte als Rückgabewert

verwenden?

Wie ist es mit diesem?

generasacodicetagpre.

Es ist nicht notwendig, eine Bibliothek zu importieren.Sie können dies verwenden:

generasacodicetagpre.

Sie können Ordnungsfunktion verwenden.Diese Funktion macht gut, was Sie suchen

generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top