我有一个代码:
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
这很可能是对它的简单介绍,真正的交易更复杂,但只是为了给出我想要的想法。
答案 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 = 1
为vote
,则执行命令"foo"
。
这虽然危险并且很难识别,但您是否已经创建了一个变量(您必须try
访问它然后捕获异常意味着它还不存在)。
P.S。是的,这是变态的。有点:)