检查词典中是否存在单词并且找不到任何单词

时间:2017-07-31 15:13:02

标签: python python-3.x dictionary

我想找到包含该词的字典。 来自列表的Word通过循环递增。 如果您未在下面收到问题评论,请提供建议。

n = int(input())

d = {}

for i in range(n):
   text = input().split()     
   d[text[0]] = text[1]

list = []

for i in range(n):
    list.append(input())

for i in range(n):
    ***`if list[i] in d == True:`***
        print(d[i])

    else:
        print("Not Found") 

1 个答案:

答案 0 :(得分:4)

你确定了问题所在:

if list[i] in d == True:

list[i] in d == True以短路方式绑定运算符in==(如(list[i] in d) and (d==True)

由于dTrue不同,因此全局条件始终为False,并且似乎该字词不在字典中,而它是。{/ p>

用括号保护(有效,但丑陋):

if (list[i] in d) == True:

或使用pythonic真实测试(绝不与TrueFalse进行比较,使用in dnot in d):

if list[i] in d:

BTW作为COLDSPEED注意到,现在该语句有效,你会在这里遇到错误,因为d没有整数键:

print(d[i])   # d[list[i]] would be correct (but ugly)

所以重写你的循环摆脱索引,直接迭代元素(并删除list作为变量,因为这是list类型,切换到l):

for item in l:
    if item in d:
        print(item)

更好吧?