J'ai 11 fichiers, chacun d'entre eux contenant des étudiants, et des scores pour chaque étudiant. Comme ceci :
Fichier 1 : (A, 3) (B, 4) (C, 1) (D, 2) (E, 6) (F, 1)
Fichier 2 : (A, 8) (B, 3) (C, 4) (D, 2) etc,
Je veux maintenant faire un compteur qui itère sur les 11 fichiers et ajoute et trie la valeur pour toutes les clés, de sorte que j'obtienne quelque chose comme ceci :
(A, 11) (B, 7) (E, 6) (C, 5) (D, 4) (F, 1)
J'ai utilisé le code suivant, mais celui-ci ne combine pas les valeurs des différents fichiers :
import os
import glob
from collections import defaultdict
from operator import itemgetter
for file in list(glob.glob('*.txt')):
scores = []
with open(file) as f:
for line in f:
name, score = line.split(' ')
score = int(score)
scores.append((name, score))
##this is the part where it is all about:
dict_1 = dict(scores)
all_keys = []
all_keys += set(dict_1.keys())
sum_list = [(k, dict_1.get(k, 0)) for k in all_keys]
print sorted(sum_list, key=itemgetter(1), reverse=True)
Existe-t-il un moyen d'ajouter les clés et les valeurs des différents fichiers ensemble en Python ?