1ère question :
Tyrtamos,
Oui, le code que j'ai écrit fonctionne seulement si l'ordre entre les clés du dictionnaire et les valeurs dans la liste correspondent.
Ici, c'était le cas, 'a' était en 1er, 'b' en 2ème, et pareil dans liste2.
Seulement, ce n'est pas le cas partout, et pourtant, j'ai quand meme des valeurs identiques.
Par exemple, mon code ne fonctionne donc pas pour :
un dictionnaire comme ceci:
dico={'a':['A','B','C','D'], 'b':['E','F','G']}
avec une liste comme cela:
Du coup, je pense que ça vient du zip.
Mais si je supprime le zip et que j'écris :
1 2 3 4 5
| liste3=[]
for i in dico.keys():
for j in liste2:
if i == j:
liste3.append(dico.values()) |
Il me renvoie une liste qui ne se termine pas, du fait de la deuxième boucle for, il réitère à l'infini....
Comment faire? 
2ème question :
J'en profite pour demander de l'aide sur un autre problème:
J'ai créé un dictionnaire ressemblant à celui précedemment, c'est-à-dire :
dico={'A' : [0.4376, 1.4985, 0.0768], 'B' : [2.6622, 0.2265]}
Ce que je voudrais faire, c'est pour chaque clé du dico, faire la somme de ces valeurs pour n'obtenir finalement que :
liste=[['A',moyenneA],['B',moyenneB]]
Je sais que par clé, il faut faudrait faire:
1 2
| for i in dico['A']:
moyenne=sum(i)/len(dico['A']) |
Seulement j'ai 120 clés, donc il faudrait faire une boucle pour itérer, mais j'ia le meme problème que ci-dessus, elle itère à l'infini
Partager