2016-06-16 12 views
0

Ich möchte eine 3 oder 4 Zeichen umfassende Ganzzahl in eine 3 oder 4 Zeichen lange Zeichenkette unter Verwendung der Buchstabenkonvertierung umwandeln, die in Dominic System angeboten wird. Das war mein erstes Projekt, das keinem Tutorial oder Buch folgte, und ich bin schon festgefahren.So trennen Sie eine Ganzzahl von Zahlen und konvertieren sie in Buchstaben

Ein Beispiel würde die Zeichenfolge 723 in GBC oder 1032 in AOCB verwandeln. Ich kann nur daran denken, die Eingabe (die Nummer) zu machen und sie in eine Liste umzuwandeln, aber ich weiß nicht, wo ich von dort aus hinfahren soll.

Antwort

0

Erstellen Sie ein Array der Länge 10. Jeder Index im Array enthält den zugehörigen Buchstaben. Dann iterieren Sie über Ihre Zeichenfolge, greifen Sie auf jede Ziffer und verwenden Sie diese als Index für das Array, um den zugehörigen Buchstaben zu finden.

dominic=[] 
dominic.append("A") 
dominic.append("B") 
dominic.append("C") 
dominic.append("D") 
dominic.append("E") 
dominic.append("F") 
dominic.append("G") 
dominic.append("H") 
dominic.append("I") 
dominic.append("J") 

convertMe = "44556"; 
final = "" 
for digit in convertMe: 
    final = final + dominic[int(digit)] 
print final 
0

Was haben Sie versucht? Sie können ein Wörterbuch erstellen, das beispielsweise Zahlen Buchstaben zuordnet.

>>> string_of_ints = '1234' 
>>> num_mapping = { 
'1': 'A', 
'2': 'B', ... 
} 
>>> list_of_letters = map(num_mapping,[x for x in string_of_ints]) 
>>> list_of_letters 
['A','B','C','D'] 

map() ermöglicht es Ihnen, eine Liste der Schlüssel in einem Wörterbuch und geben die Werte aus dem Wörterbuch.

Schließlich können Sie die Liste in eine Zeichenkette reduzieren Verwendung reduzieren:

>>> reduce(lambda x,y:x+y,list_of_letters) 
'ABCD' 
1

Dies ist tatsächlich bemerkenswert einfach in Python:

# Import the function 
from string import maketrans 
# Set up a translation to the Dominic system 
transtab = maketrans('1234567890', 'ABCDESGHNO') 
# You could input this somehow 
my_num = 9876 
# Convert number to string and translate it 
print str(my_num).translate(transtab) 

Und diese umkehren:

# Set up a translation from the Dominic system 
rev_transtab = maketrans('ABCDESGHNO', '1234567890') 
# You could input this somehow 
my_string = 'ONHG' 
# Translate string and convert to number 
print int(my_string.translate(rev_transtab)) 
Verwandte Themen