Comment faire référence aux premier, deuxième et troisième éléments d'une liste affectée à une clé dans un dictionnaire? Le dictionnaire est un nom d'étudiant avec une liste qui lui est assignée avec ses scores. Comment puis-je faire référence à chacun des scores de cette liste pour pouvoir retirer le plus petit, et plus tard calculer une moyenne à partir de ces scores et les imprimer . Le dictionnaire ressemble à ceTri des données dans les dictionnaires par numéro le plus élevé dans une liste affectée en tant que valeur? python
{'Student Example ': [5, 2], 'Student Name ': [2], 'Another Student ': [1]}
alors que le code im essayant d'utiliser ressemble
viewscores = input ("Would you like to view the scoreboards? (Yes/No): ")
if viewscores == "Yes":
classview = int (input ("What class board would you like to view? (1,2 or 3): "))
print ("Sort class",classn,"scoreboard: ")
print ("1. Alphabetically by students highscore")
print ("2. By high score, highest to lowest")
print ("3. By average score, highest to lowest")
sorting = int (input("Enter sort type: (1,2 or 3): "))
if classview == 1:
if sorting == 1:
highscores = ((k, classone[k]) for k in sorted(classone, key=classone.get, reverse=True))
for k, v in highscores:
listnum = len(v)
while listnum > 1:
if (v[1]) < (v[0]):
del (v[1])
print (v,k)
Je reçois l'erreur:
Traceback (most recent call last):
File "C:\Users\emily_000\Desktop\test task 3 part two.py", line 116, in <module>
if (v[1]) < (v[0]):
IndexError: list index out of range
Comment pourrais-je faire référence aux indexs du listes de sorte que je peux trouver le meilleur score sur eux, puis trier (par le plus élevé au plus bas, et par ordre alphabétique). Alors comment pourrais-je me référer à eux pour que je puisse calculer une moyenne sur les scores et organiser par ce nombre? en utilisant python
3.3.4Ceci est pour un projet scolaire Pourriez-vous expliquer comment cela fonctionne, donc je peux comprendre, je vous remercie pour toute aide
Sur quelle ligne est l'erreur? Pouvez-vous réduire le problème à quelques lignes de code? –
Je reçois un 'Traceback (dernier appel en dernier): Fichier "C: \ Utilisateurs \ georg_000 \ Bureau \ tâche de test 3 partie two.py", ligne 116, en si (v [1]) <(v [0]): IndexError: indice de liste hors plage 'erreur –
Le problème est que vous ne mettez pas à jour 'listnum' lorsque vous supprimez un élément. Vous feriez probablement mieux de simplement utiliser 'len (v)' à sa place pour votre condition de boucle. – Ken