Python 3.x dict_值对象没有属性索引

Python 3.x dict_值对象没有属性索引,python-3.x,Python 3.x,我试图对atbash密码进行解密,我使用字典重新排列字符串,将重新排列的值追加到列表中并返回 def atbash(txt): ph = [] lst = [] atbashdict = {"a":"z","b":"y","c":"x","d":"w","e":"v","f":&

我试图对atbash密码进行解密,我使用字典重新排列字符串,将重新排列的值追加到列表中并返回

def atbash(txt):
ph = []
lst = []
atbashdict = {"a":"z","b":"y","c":"x","d":"w","e":"v","f":"u","g":"t",
"h":"s","i":"r","j":"q","k":"p","l":"o","m":"n","n":"m","o":"l","p":"k",
"q":"j","r":"i","s":"h","t":"g","u":"f","v":"e","w":"d","x":"c","y":"b",
"z":"a"}
if " " in txt:
    ph = txt.split()
    for i in range(len(ph)):
        for j in ph[i]:
            if j.lower() in atbashdict.keys():
                if j.isupper()==True:
                    lst[i].append(list(atbashdict.keys())[list(atbashdict.values().index(j.lower()))].upper())
                else:
                    lst[i].append(list(atbashdict.keys())[list(atbashdict.values().index(j))])
            if j.isalpha()==False:
                lst[i].append(j)            
    return(" ".join(lst))
for i in txt:
    if i.isupper()==True:
        if i.lower() in atbashdict.keys():
            lst.append(list(atbashdict.keys())[list(atbashdict.values().index(i.lower()))].upper())
    else:
        if i in atbashdict.keys():
            lst.append(list(atbashdict.keys())[list(atbashdict.values().index(i))])
return("".join(lst))
当我使用测试“abcdefghijklmnop”运行代码时,我遇到了以下错误:

ERROR: Traceback:
  in <module>
  in atbash
 AttributeError: 'dict_values' object has no attribute 'index'
错误:回溯:
在里面
在atbash
AttributeError:“dict_values”对象没有属性“index”

在试图纠正自己之后,我感到困惑,我陷入了同样的错误列表中。。。请帮忙

您必须执行
列表(dictionary.values()).index()
。您必须将其转换为列表。

您必须将词典转换为列表才能正常工作。该错误基本上表明密码无法处理字典。我希望这是有帮助的。我实际上只是在学习Python的基础知识