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