keyerror:在字典python3中

时间:2017-10-02 23:20:17

标签: python-3.x

我收到以下代码的密钥错误。我正在阅读名为names.txt的文件,该文件同时具有人名和年龄。所有名称都是小写的但是当我在字典中搜索时使用name.lower()函数时,它会抛出键错误。

fo = open('names.txt' ,'r')
data = fo.readlines()
fo.close()
dicti = {}
for i in data:
    new_list = i.split(',')
    dicti[new_list[0].lower()] = new_list[1].strip('\n')
name = input ('enter the name to be searched: ')
if name.lower() in dicti.keys():
    print (dicti[name])
elif name == 'exit':
    quit()
else:
    print ('name ' + name.title() + ' not found')

文件names.txt数据是:

 Sophia,35
 Emma,28
 Olivia,16
 Isabella,10
 Ava,9
 Mia,26
 Emily,4
 Abigail,33

有人可以告诉我有关错误的信息。

1 个答案:

答案 0 :(得分:0)

因此:

if name.lower() in dicti.keys():
    print (dicti[name])

您检查较低的名称是否在dicti中,但随后按原样访问,而不进行小写转换。正确的代码是:

if name.lower() in dicti.keys():
    print (dicti[name.lower()])