Python 编码练习

问题描述 投票:0回答:1

我尝试用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 以及更多但什么也没有,我非常不知道如何开发它。

python-3.x logic
1个回答
0
投票

创建嵌套循环如下:

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 表示每个元素的每个字符

© www.soinside.com 2019 - 2024. All rights reserved.