检查字典中是否存在某个单词找不到任何单词

Mun*_*jir 1 python dictionary python-3.x

我想找到字典是否包含该词。来自列表的单词按循环递增。如果您在下面没有收到问题评论,请提出建议。

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") 
Run Code Online (Sandbox Code Playgroud)

Jea*_*bre 5

你指出了问题:

if list[i] in d == True:
Run Code Online (Sandbox Code Playgroud)

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

由于d与 不同True,全局条件始终False为,并且该词似乎不在字典中,而实际上却是。

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

if (list[i] in d) == True:
Run Code Online (Sandbox Code Playgroud)

或使用 pythonic 真值测试(永远不要比较TrueFalse无论如何,使用in dnot in d):

if list[i] in d:
Run Code Online (Sandbox Code Playgroud)

顺便说一句,正如 COLDSPEED 指出的那样,既然该语句有效,您将在此处出错,因为d没有整数键:

print(d[i])   # d[list[i]] would be correct (but ugly)
Run Code Online (Sandbox Code Playgroud)

所以重写你的循环,在你使用它时去掉索引,直接迭代元素(并去掉list作为变量,因为这是list类型,切换到l):

for item in l:
    if item in d:
        print(item)
Run Code Online (Sandbox Code Playgroud)

更好吗?