【发布时间】:2019-08-07 19:00:28
【问题描述】:
我有一个系统,其中使用字典将名称列表分配给值 0。 每当用户输入他们的姓名时,我想让该值增加 1。
我尝试使用 for 循环遍历字典,但是这只会逐字搜索字典中的名称,如果输入的名称不在循环所在的任何迭代中,则不会更新值。
i = 0
dic = {"tim":0, "jimbo":0}
while True:
while i < len(dic):
for name, value in dic.items():
try:
userinput = input("Enter name: ").lower()
except(ValueError):
print("Error")
if userinput in name:
dic[name] += 1
i += 1
print(dic)
最后的 print 语句确实给出了更新的值,但前提是输入的名称在循环的当前迭代内。理想情况下,我希望每当输入字典中的名称时更新该值。控制台在四次输入后似乎也冻结了。
是否有更明智的方法来执行此操作,特别是针对具有超过 100 个键的更大字典执行此操作?
【问题讨论】:
-
打破
while内部循环的意义何在?我很困惑为什么你有这个并且还有for循环。这也是 codereview 的一个问题,而不是 SO。 -
你能澄清一下你的目标是什么吗?您想要求用户输入多少次?
-
我想不断征求用户意见。因此,每当用户输入名称并且值更新时,都会再次要求用户输入。这将用于确定特定用户访问系统的次数以及是否真正使用电子邮件地址而不是姓名。
标签: python-3.x dictionary