J'ai de la difficulté à faire du travail pour travailler. Ce que je tente de faire, c'est avoir un vote compte. Les clés sont les noms des candidats, les valeurs sont le nombre de votes. Collectez cette information à partir de la saisie de l'utilisateur et imprimez le décompte final des votes par candidat.
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
3 Réponses :
Essayez d'utiliser un DefaultDict à la place. Si le nom n'existe pas dans le dictionnaire, une valeur par défaut de zéro sera utilisée. Si le nom existe, les votes vont simplement augmenter le nombre.
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))
Merci beaucoup ! Je savais qu'il y avait une sorte de fonction qui ferait ce travail exact. Je vous en suis reconnaissant.
@Tinfoil_helmet pas de soucis. Considérez également la mise en place si cela aidait. :)
en utilisant compteur
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))
i Figure Le problème est dans la ligne B = entrée ('vote') code>. Lorsque vous obtenez B code> à partir de l'entrée, son type est chaîne code>, vous devez le modifier en int code>, de sorte que les numéros peuvent être ajoutés. Essayez-le en ajoutant une ligne de code b = int (b) code>. P>
Lorsque vous construisez le dictionnaire, il serait préférable de reconnaître lorsque le nom d'entrée est identique à celui d'un nom précédent et ajoutez de nouveaux votes de la personne à leurs anciens votes, au lieu de faire une dicte complètement nouvelle avec la même clé de nom.