输入值以在字典中生成键[python]

Enter value to produce keys in dictionary [Python]

本问题已经有最佳答案,请猛点这里访问。

我自己做了莫尔斯电码转换器,你可以在这里输入代码,并打印出相应的字母。然而,我想做的是,每当我输入一个字母,代码就会打印出来。以下是我的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
MorseCode = {'.-':'A',
            '-...':'B',
            '-.-.':'C',
            '-..':'D',
            '.':'E',
            '..-.':'F',
            '--.':'G',
            '....':'H',
            '..':'I',
            '.---':'J',
            '-.-':'K',
            '.-..':'L',
            '--':'M',
            '-.':'N',
            '---':'O',
            '.--.':'P',
            '--.-':'Q',
            '.-.':'R',
            '...':'S',
            '-':'T',
            '..-':'U',
            '...-':'V',
            '.--':'W',
            '-..-':'X',
            '-.--':'Y',
            '--..':'Z',
            '.----':1,
            '..---':2,
            '...--':3,
            '....-':4,
            '.....':5,
            '-....':6,
            '--...':7,
            '---..':8,
            '----.':9,
            '-----':0
}

print"Type 'help' for the morse code."
print"Type 'end' to exit the program.
"

while True:
    code = raw_input("Enter code:")
    if code in MorseCode:
        print MorseCode[code]

所以问题是:有没有一种方法可以把字典颠倒过来,这样每当我输入"a",".-"就会打印出来?我现在只学了两个星期的Python,所以在进入更高级的层次之前,我仍然掌握了基本的知识。谢谢您!


您可以使用字典理解(假设您使用的是python 2.6+)轻松创建一个新的倒置字典:

1
2
3
4
letters_to_morse = {char: code for code, char in MorseCode.items()}

letters_to_morse['A']
>> '.-'