Créer un classement en python 2.7 - Python - Programmation
Marsh Posté le 11-04-2015 à 18:08:08
hypone a écrit : Tous d'abord je voulais créer une fonction qui donne le goalaverage de chaque club, puis qui les transferts dans une liste vide et qui les tris par ordre croissant(je sais pas si c'est la bonne solution)
|
Bah oui c'est ce que tu lui demandes, pour chaque club tu définis un e et un f mais au lieu de les garder dans un coin tu les écrases au tour de boucle suivant, et tu n'utilises en fait que les derniers e et f définis (ceux du dernier club de ta liste, donc).
Accessoirement, beaucoup de n'importe quoi dans ton truc: tu lis le fichier CSV en début de script puis tu l'ignores, et chaque fonction d'extraction de données doit aller rouvrir le fichier, le lire, essayer de trouver la bonne ligne dedans, et extraire la donnée qui va bien. Ça fait une chiée d'opérations inutiles, serait plus fin de générer un dictionnaire {club: {for_home, for_out, against_home, against_out}}. Les fonctions d'extraction deviennent triviales, et peuvent même être enlevées complètement. Au final, le script complet devrait prendre ~15 lignes, et encore.
Accessoirement, ce que tu calcules ici c'est le goal difference (buts marqués - buts encaissés) pas le goal average (buts marqués / buts encaissés).
Marsh Posté le 11-04-2015 à 18:45:35
Merci pour ton aide, Je ne comprend pas ce que tu me conseilles de mettre dans un dictionnaire car pour un dictionnaire c'est une valeur et une key, pour mon script à la base il était plus épuré il n'avait pas les lignes :
csvfile = open ("ligue1.data", "rb" )
DesLignes=csv.reader(csvfile)
UneListe=ListeClub
pointeur_liste=ListeClub.index(y)
mais def Goalaverage m'afficher toujours 0 vu qu'avec ces 4 lignes ça marché je suis passé à la suite, merci pour goal difference je ne savais pas mais je vais laissé goal average c'est plus parlant
Marsh Posté le 11-04-2015 à 21:41:37
hypone a écrit : Merci pour ton aide, Je ne comprend pas ce que tu me conseilles de mettre dans un dictionnaire car pour un dictionnaire c'est une valeur et une key |
La clé est le nom du club, la valeur est un autre dictionnaire avec les buts marqués à domicile, les buts marqués à l'extérieur, les buts encaissés à domicile et les buts encaissés à l'extérieur
hypone a écrit : merci pour goal difference je ne savais pas mais je vais laissé goal average c'est plus parlant |
En quoi c'est plus parlant si c'est absolument pas ce que tu calcules?
Marsh Posté le 12-04-2015 à 12:00:33
Bonjour,
Citation : La clé est le nom du club, la valeur est un autre dictionnaire avec les buts marqués à domicile, les buts marqués à l'extérieur, les buts encaissés à domicile et les buts encaissés à l'extérieur |
Je crois avoir compris, mais comment faire pour mettre mais valeur but marqués à domicile qui sont calculé dans ma fonction ButMarqueDomicile dans un dictionnaire, j'arrive pas non plus à les mettre dans une liste même avec une boucle
Citation : En quoi c'est plus parlant si c'est absolument pas ce que tu calcules? |
Pour la plus part des gens goal average == goal difference
Marsh Posté le 11-04-2015 à 15:44:10
Bonjour, j'aimerai créer un classement par rapport à un goalverage j'ai déjà créer les fonctions qui donne le goalverage des qu'on tape le nom d'un club il nous le donne, maitenant j'aimerai les classer par rapport à ça.
Tous d'abord je voulais créer une fonction qui donne le goalaverage de chaque club, puis qui les transferts dans une liste vide et qui les tris par ordre croissant(je sais pas si c'est la bonne solution)
donc j'ai fais ça:
Mais il m'affiche toujours le goalaverage du dernier élément de la liste, J'ai essayé d'ajouter une boucle pour le faire parcourir les éléments de liste mais ça ne marche pas, si quelqu'un peut m'aider merci.