我想从值中获取密钥名称,因为我想创建一个单词加密器/解密器程序。
我希望值1Q为字母“ a”。
words = {
'a' : '1Q',
'b' : '2E',
'c' : '3T',
'd' : '4U',
'e' : '5O',
'f' : '6W',
'g' : '7R',
'h' : '8Y',
'i' : '9I',
'j' : '0P',
'k' : 'A0',
'l' : 'D1',
'm' : 'G2',
'n' : 'J3',
'o' : 'L4',
'p' : 'S5',
'q' : 'F6',
'r' : 'H7',
's' : 'K8',
't' : 'Z9',
'u' : 'CC',
'v' : 'BB',
'w' : 'MM',
'x' : 'XS',
'y' : 'VZ',
'z' : 'NS',
}
def Text_To_Hash(Text):
val = ''
Text_ = Text.lower()
for i in Text_:
if i == ' ':
val += 'LK'
else:
val += str(words[i])
return val
Input = input("Enter a value: ")
print(Text_To_Hash(Input))
没有错误。我想要值的键名。
我该如何解决问题?
答案 0 :(得分:1)
尝试循环浏览字典。
def Text_To_Hash(Text):
val = ''
Text_ = Text.lower()
for i in Text_:
for key in words:
if words[key] == i:
val += key
return val
答案 1 :(得分:0)
为了有效地做到这一点(时间,而不是空间),我建议创建自己的类,基本上是将两个不同的字典包装在一起。因此,它可能看起来像这样:
class TwoWayDict:
def __init__(self):
self.dict1 = {}
self.dict2 = {}
def insert(self, key, value):
if key in self.dict1.keys() or key in self.dict2.keys():
raise ....some exception about the key already existing....
self.dict1[key] = value
self.dict2[value] = key
def getValueFromKey(self, key):
return self.dict1[key]
def getKeyFromValue(self, value):
return self.dict2[value]
这显然还没有完全充实,但我希望它显示出基本原理。