我几周后学习python 3.6并偶然发现tutorial 莫尔斯词典的例子。
有一个字典,如:
morse = {
"A" : ".-",
"B" : "-...",
"C" : "-.-.",
"D" : "-..",
...
...}
使用我的以下代码,可以输入一个字母,然后输入匹配的莫尔斯代码:
while 1:
entry = input("letter: ")
if entry in morse:
result = morse[entry]
print(result)
与以下行为相同:
while 1:
entry = input("letter: ")
for i in entry:
print(morse[entry])
我想要的是输入完整的单词或句子,并在stdout中为每行输入的莫尔斯代码获取莫尔斯代码
letter: ABC
.-,-...,-.-.
我认为以下可能有效(但它没有......)。
#result is new dic for the resulting key:values
result = {}
while 1:
entry = input("letter: ")
if entry in morse:
result = morse[entry]
print(result)
else:
for i in entry:
i = entry.split()
print(morse[i])
导致错误,如果我输入AB
或A B
(.split()
默认分隔符是\ w,我认为不在乎)
TypeError: unhashable type: 'list'
如果我可以使用dict.get()或dict.update(),我也试过了。 我认为必须有一个简单的方法来做到这一点,或者? ;) 目标是迭代输入吗?
我感谢任何帮助
答案 0 :(得分:1)
>>> morse = {
... "A" : ".-",
... "B" : "-...",
... "C" : "-.-.",
... "D" : "-.."}
>>> print(','.join(morse[x] for x in input() if x in morse))
AXBC
.-,-...,-.-.
(在Python 2中使用raw_input
)