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)
你指出了问题:
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 真值测试(永远不要比较True或False无论如何,使用in d或not 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)
更好吗?
| 归档时间: |
|
| 查看次数: |
870 次 |
| 最近记录: |