代码的主要目的是获取n行输入并将此数据添加到字典中,然后对字典执行n次查询。但是只有最后一个查询才能正常工作。
from sys import stdin
n = int(input())
mydict={}
for i in range(0,n):
pairs=input().split(' ')
key=pairs[0]
value=pairs[1]
mydict[key]=value
print (mydict)
for a in stdin:
print(a)
if(a in mydict):
print(a+'='+mydict[a])
else:
print("Not Found")
答案 0 :(得分:2)
从stdin
获得的输入包括新行字符,但是,由于使用input()
字典中的键没有,因此查找失败。它适用于最后一次迭代,因为该行以文件结尾而不是新行终止。
您可以通过在第二个循环中删除行末尾的空格来修复它:
for a in stdin:
a = a.rstrip()
print(a)
if a in mydict:
print(a+'='+mydict[a])
else:
print("Not Found")
答案 1 :(得分:0)
从stdin读取的内容是原始流。
因此,当您点击回车键时,'\n'
会添加到流中。
解决方案1:使用输入法。
解决方案2:从标准输入读取,并在从字典中查询之前使用rstrip()
方法。