字典:如何获取用户的重复输入并计算输入的次数?

时间:2014-10-07 14:50:12

标签: python list python-3.x

names = []

print("Duplicate names won't be in the list!") # reminder 
while True:
    userInput = input("Enter a name: ")
    if userInput == "": # condition to terminate loop
        print("You've entered these names, duplicated names won't be included")
        print(names)
        break
    elif userInput not in names: # condition to see if input is duplicated
        names.append(userInput) # if satisfied, adds it to the list
    else:
        print("value exists!") # reminder about the value entered is duplicate

到目前为止,这是我的代码,我不知道如何计算输入特定重复值的次数,字典会解决很多人说的但是我对它不太熟悉。在输出中,当名称输入完成后,控制台用户应该能够搜索列表 只需在控制台输入名称即可命名。该程序应输出“不是 找到“或显示输入的名称和次数。 搜索完成后,控制台用户应该能够从列表中删除名称 通过输入名称。如果找不到名称,程序应输出“未找到”。如果一个名字 找到然后它应该从列表中删除,名称与a一起显示 向用户发送“已删除”消息,例如“删除特德”。

非常感谢那些有帮助的人!

2 个答案:

答案 0 :(得分:1)

您应该使用Counter

c = Counter() #Initialize the counter

print("Duplicate names won't be in the list!")
while True:
    userInput = input("Enter a name: ") #input used to be raw_input in Python 2
    if userInput == "":
        print("You've entered these names, duplicated names won't be included")
        print(c.keys())
        break
    elif userInput not in c: 
        c.update([userInput]) # if satisfied, adds it to the counter. You have to provide a list, hence the [ ]. If you provide a string, it will be broke down into characters.
    else:
        print("value exists!") 

为了显示具体的计数,

print c[word]

您还可以查看最常见的术语等。

但是,您的代码禁止多次输入名称,但如果您想计算人们输入您姓名的次数,则可以采用此方式。

答案 1 :(得分:0)

字典由键和值组成,字典中的键应始终是唯一的,因此,除非您使用的每个值都有唯一键,否则它将不支持重复值,并且不适合您的目的。