2016-06-16 32 views
0

Dominic Systemで提供される数字の文字変換を使用して、整数の3文字または4文字の文字列を3文字または4文字の文字列に変換したいとします。これはチュートリアルや本を読んでいない私の最初のプロジェクトになるだろうし、私はすでに立ち往生している。整数の文字列を分離して文字に変換する方法

たとえば、文字列723をGBCに、または1032をAOCBに変換します。私は入力(数字)を作成してリストにすることしか考えられませんが、そこからどこに行くのかはわかりません。

答えて

0

配列の各インデックスは、関連付けられた文字を保持します。次に、あなたの文字列を繰り返し、各桁をつかみ、それを配列のインデックスとして使用して関連する文字を探します。

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

何を試しましたか?たとえば、数値を文字に対応付ける辞書を作成することができます。

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

マップ()あなたは辞書からの値の辞書と出力に入力するキーのリストを可能にします。

は、最後にあなたが使用して文字列に戻すリストを減らすことができます削減:

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

これは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) 

そして、この逆にする:

# 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)) 
関連する問題