我尝试用Python(不使用外部库)解决这个练习3天,但没有成功。请帮助我:
我有这个字符串列表:
['2-0 50- 4- 561- 3 ', '4 351 1+ 1-1 4+ 1 04+ 6', '5 36 30-2 1+6+3- 6+ 4+14+0-6', '4- 22 5-223+ 5 2+ 3+ 26+']
它必须变成:
Cb1A1P1F1Ab1P1Eb1P1F1G1Bb1P1D1P1E1P1D1F1B1P1B#1P1Bb1B1P1E#1P1B1P1A1E#1P1G1F1P1D1G1P1D1Ab1C1P1B#1G#1Db1P1G#1P1E#1B1E#1Ab1G1Eb1P1C2P1Fb1C2D#1P1F1P1C#1P1D#1P1C1G#1
所以,我映射的字典是:
translator= {
"0": "A",
"1": "B",
"2": "C",
"3": "D",
"4": "E",
"5": "F",
"6": "G",
"-": "b",
"+": "#",
" ": "P"
}
我的代码是:
chars=len(line)
char = 0
translation = ''
while char < chars:
translation = translation + translator[line[char ]]
char += 1
print(translation )
但是通过这种方法,我得到了这个:
CbAPFAbPEbPFGBbPDPEPDFBPB#PBbBPE#PBPAE#PGFPDGPDAbCPB#G#DbPG#PE#BE#AbGEbPCCPFbCCD#PFPC#PD#PCG#
我不知道如何插入数字,尤其是当行是
0-0-0-0-
并且输出必须是Ab4
时。
请帮助我。
我尝试过 annidate if 以及更多但什么也没有,我非常不知道如何开发它。
创建嵌套循环如下:
st = ['2-0 50- 4- 561- 3 ', '4 351 1+ 1-1 4+ 1 04+ 6', '5 36 30-2 1+6+3- 6+ 4+14+0-6', '4- 22 5-223+ 5 2+ 3+ 26+']
translation = ''
translator= {
"0": "A",
"1": "B",
"2": "C",
"3": "D",
"4": "E",
"5": "F",
"6": "G",
"-": "b",
"+": "#",
" ": "P"
}
for x in st:
for y in x:
translation = translation + translator[y]
print(translation)
Output : 'CbAPFAbPEbPFGBbPDPEPDFBPB#PBbBPE#PBPAE#PGFPDGPDAbCPB#G#DbPG#PE#BE#AbGEbPCCPFbCCD#PFPC#PD#PCG#'
这里 x 表示列表中的每个元素(字符串)。 y 表示每个元素的每个字符