保持基于输入值的统计 - 不同的“变量”?

时间:2014-08-08 13:44:51

标签: python variables

我有一个代码:

vote = raw_input("Enter who you vote for: ")

但我需要的是raw_input()to" create"如果在第一次输入某些内容时变量 - 例如:

>>>
Enter who you vote for: foo
>>> foo = 1

然后如果我进入" foo"再次,foo计数将增加1。

Enter who you vote for: foo
>>> foo += 1

这很可能是对它的简单介绍,真正的交易更复杂,但只是为了给出我想要的想法。

3 个答案:

答案 0 :(得分:6)

您可以使用collections.defaultdict

from collections import defaultdict
votes = defaultdict(int)
vote = raw_input("Enter who you vote for: ")
votes[vote] += 1

答案 1 :(得分:0)

以下是我使用defaultdict确定最高投票数的方法。

from collections import defaultdict
votes = defaultdict(int)
vote = raw_input("Enter who you vote for: ")
votes[vote] += 1

voted = []                  ##create empty list for user inputted votes
voted.append(vote)          ##append what user inputs to the list

for name in voted:
    if votes[name] == 5:    ##maximum vote count is 5
        print 'The winner is '+name+'.'

这应该是一个非常简单的代码,因为两个名字不可能在同一时刻累积5票。

答案 2 :(得分:-2)

我更喜欢defaultdict答案,但只需遵循创建变量的概念即可使用exec

exec vote + ' = 1'

如果foo = 1vote,则执行命令"foo"。 这虽然危险并且很难识别,但您是否已经创建了一个变量(您必须try访问它然后捕获异常意味着它还不存在)。

P.S。是的,这是变态的。有点:)