首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当使用元组作为字典键时,Python3会给我KeyError

当使用元组作为字典键时,Python3会给我KeyError
EN

Stack Overflow用户
提问于 2018-06-22 06:59:41
回答 1查看 1.3K关注 0票数 1

问题是在for循环中很难将输入用作字典的键,我尝试使用元组和列表,但结果相同

代码如下:

代码语言:javascript
复制
import re
morse = {
"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" : "--..", 
"0" : "-----", 
"1" : ".----", 
"2" : "..---", 
"3" : "...--", 
"4" : "....-", 
"5" : ".....", 
"6" : "-....", 
"7" : "--...", 
"8" : "---..", 
"9" : "----.", 
"." : ".-.-.-", 
"," : "--..--",
" " : " "
}
print("""
                        MORSECODE ENCYPTER """)
print("Enter the text to convert(keep in mind that upper case character, numbers , (.) and (,) are only allowed) :",end = '')
to_encrypt = input()
tuple1 =  tuple( re.findall("." , to_encrypt) )
print (tuple1)  
for i in tuple1 :
    print(morse[tuple1])    

当我输入to_encrypt输入(例如H)时,它会给我:

代码语言:javascript
复制
Traceback (most recent call last):
File "x.py", line 50, in <module>
print(morse[tuple1])    
KeyError: ('H',)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-22 07:42:51

首先,你的for循环似乎是不正确的,你可以试试这个:

代码语言:javascript
复制
to_encrypt = list(str(input()))

for ch in to_encrypt:
    morse_val = morse.get(ch, None)

    if not morse_val:
        print('could not encode ', ch)

    else:
        print(morse_val)

如果你需要更好的澄清,请告诉我。P.S -上面的代码假设你已经定义了morse字典。此外,我没有看到在这里使用正则表达式的目的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50978521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档