在 python 中设置一个 while 循环以获取未知数量的变量

Setting a while loop in python to take unknown number of variables

剧透这与Hackerrank的30天代码有关。我正在使用 python 2.

我在计算第 8 天(字典和地图)挑战的一部分时遇到了问题。基本上,他们想给你 x 个名字和数字,这样你就可以建立一个字典。之后他们会为您提供 n 个查询,这样您就可以在电话簿中给他们打电话,如果他们在那里,或者打印 "not found" 否则。但是 n 是一个未知数,因此我迷路了。 问题陈述 here 如果有人感兴趣...

无论如何,我用我的代码通过了 prelim 测试用例,但实际 7 个案例中只有 1 个,因为我不知道要在我的 "while" 循环中放置什么范围(所以我随意放置一些东西,比如 1000。 ) 我觉得我必须使用 *args 之类的东西,但我不知道如何拼接它。有人能给我指出正确的方向吗?提前致谢!

代码:

t = int(raw_input())
phonebook = {}
for x in range(t):                                
    entry,num = raw_input().strip().split(' ')
    entry,num = [str(entry),int(num)]
    phonebook[entry] = num
i = 0
while i < unknown_range:                    <---- problem here
    name = str(raw_input())
    if name in phonebook.keys():
        string = name +'='+ str(phonebook[name])
        print(string)
        i += 1
    else:
        print("Not found")
        i += 1

创建一个循环,在循环本身中给出退出条件:

i = 0
while True:
    name = str(raw_input())
    # or a try-except statement depending on the kind of input
    if not name.strip():
        break
    if name in phonebook.keys():
        string = name +'='+ str(phonebook[name])
        print(string)
        i += 1
    else:
        print("Not found")
        i += 1