我无法上班。我想做的是获得选票。键是候选人的姓名,值是投票数。从用户输入中收集该信息,并打印出每个候选人的最终票数。
from collections import Counter
name_vote =[]
count = int(input('How many?'))
while count >=1:
a=input('Name')
b=input('Vote')
c={ a:b }
name_vote.append(c)
count = count - 1
print(name_vote)
c = Counter()
for d in name_vote:
c.update(d)
print(c)
用户首先告诉您有多少个投票输入(这是计数)
所以输入看起来像这样: 多少? = 6
约翰2
条例草案5
约翰4
斯科特11
约翰3
斯科特1
结果:(打印出)
约翰福音9
条例草案5
斯科特12
这是非常新的,非常感谢您的帮助。试图在其他帖子中查找解决方案,这是我使用计数器找到的地方。但是在我的代码中不起作用。产生错误:
Traceback (most recent call last):
File "c:/Users/Rghol5212/hello/Dico.py", line 30, in <module>
c.update(d)
File "C:\Users\Rghol5212\AppData\Local\Programs\Python\Python37-
32\lib\collections\__init__.py", line 649, in update
self[elem] = count + self_get(elem, 0)
TypeError: can only concatenate str (not "int") to str
谢谢。
答案 0 :(得分:0)
尝试改用defaultdict。如果该名称在词典中不存在,则将使用默认值零。如果名称存在,投票将增加计数。
from collections import defaultdict
name_vote = defaultdict(int)
count = int(input('How many?'))
while count >=1:
a=input('Name')
b=input('Vote')
name_vote[a] = name_vote[a] + int(b)
count = count - 1
for k,v in name_vote.items():
print("{} {}".format(k,v))
答案 1 :(得分:0)
使用Counter
from collections import Counter
name_vote = Counter()
count = int(input('How many? '))
while count >= 1:
name = input('Name ')
vote = int(input('Vote '))
name_vote += {name: vote}
count -= 1
for name, cnt in name_vote.items():
print("Name: {}, Vote: {}".format(name, cnt))
答案 2 :(得分:0)
我认为问题出在webviewSettings.setMediaPlaybackRequiresUserGesture(false);
行中。从输入中获得b=input('Vote')
时,其类型为b
,则需要将其更改为string
,以便可以添加数字。通过添加一行代码int
来进行尝试。