chaîne indices doivent être des entiers non str dictionnaire
Je suis en train d'essayer d'obtenir la valeur la forme d'une liste dans un dict? vous ne savez pas comment il peut être consulté? mais voici ce que j'ai fait & j'ai une erreur comme
TypeError: string indices doivent être des entiers, pas de str
lloyd = {
"name": "Lloyd",
"homework": [90.0, 97.0, 75.0, 92.0],
"quizzes": [88.0, 40.0, 94.0],
"tests": [75.0, 90.0]
}
alice = {
"name": "Alice",
"homework": [100.0, 92.0, 98.0, 100.0],
"quizzes": [82.0, 83.0, 91.0],
"tests": [89.0, 97.0]
}
tyler = {
"name": "Tyler",
"homework": [0.0, 87.0, 75.0, 22.0],
"quizzes": [0.0, 75.0, 78.0],
"tests": [100.0, 100.0]
}
for i in alice:
print i['quizzes']
Je suis en train d'apprendre python, & j'ai eu quelques questions Si quelqu'un pouvait aider serait un gr8 aider dans l'apprentissage.Merci à l'avance.
1) Comment accéder à la touche 'devoirs' & somme de sa valeur dans la liste?
2) Comment accéder dict alice & somme de ses valeurs, de toutes les clés? devoirs + quiz + tests avec la fonction sum ()
3) Comment accéder à la clé "llyod' & get sa len() d'une liste? dire 'devoirs'
c'est ce que j'ai essayé & j'ai eu le même message d'erreur pour celui-ci ainsi:
def average(x):
for a in x:
return sum(a['homework']) / len(a['homework'])
return sum(a['quizzes']) / len(a['quizzes'])
return sum(a['tests']) / len(a['tests'])
Si quelqu'un pourrait s'il vous plaît effacer mes doutes sur ceux au-dessus de 3 question.
OriginalL'auteur Simon K Bhatta4ya | 2013-08-02
Vous devez vous connecter pour publier un commentaire.
question1(Comment accéder à la clé 'devoirs' & somme de sa valeur dans la liste?)
question2 devoirs + quiz + tests
question3) Comment accéder à la clé "llyod' & get sa len() d'une liste? dire 'devoirs'
OriginalL'auteur suhailvs
Vous êtes en boucle sur le clés de
alice
, pas les valeurs. Vos clés sont des chaînes de caractères. Même si vous étiez en boucle sur les valeurs, aucune des valeurs dansalice
peuvent être indexées par'quizzes'
. Vous pouvez simplement imprimeralice['quizzes']
, mais ce n'est probablement pas ce que tu voulais au départ.Vous souhaitez mettre toutes vos nommé dictionnaire dans un "parent" dictionnaire de la place:
Maintenant, vous pouvez passer en boucle ce dictionnaire et accéder aux différentes touches par étudiant:
Notez l'utilisation de
.values()
ici à boucle sur juste les valeurs de lastudents
dictionnaire, puisque nous n'utilisons pas les clés ici.Utiliser la même boucle pour calculer votre moyenne, mais n'oubliez pas qu'une fonction se termine lorsqu'un
return
instruction est rencontrée. Vous pouvez toujours retourner plusieurs valeurs à partir d'une fonction en retournant un n-uplet:ou vous pouvez utiliser un dictionnaire, par exemple.
+1 tu as raison c'est mieux de tirer tout en un "parent" dictionnaire
+1 @martijn hmm.. une approche différente, mais d'une manière sympa de faire ce que je veux. Merci, oui vous avez raison à propos de l'exercice de la partie 🙂 certainement utile de commencer par l'exercice.
OriginalL'auteur Martijn Pieters
Ce code:
prend le dictionnaire Alice et va itérer sur ses touches, qui sont des chaînes de caractères. Je pense que ce que vous voulez, c'est:
OriginalL'auteur Jblasco
mieux, que vous utilisez l'itération sur les deux (une clé et une valeur). Il est plus généralement. Essayez, ça marche:
OriginalL'auteur lara