IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Comment créer un classement à partir d'une liste


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 3
    Par défaut Comment créer un classement à partir d'une liste
    Bonjour j'ai fait ce code qui permet d'afficher le nombre de but marqué ou encaissé et le goal average par rapport à une data, j'aimerai créer une fonction qui classe les équipes par rapport à leur goal average mais je sais pas comment faire et quel serais la meilleur solution, si c'est plus simple avec une liste ou un dictionnaire, merci de votre aide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    #importation
    import csv
     
    #Fonction
    csvfile = open ("ligue1.data", "rb")
    lines = csv.reader(csvfile)
    ListeClub = ["Ajaccio","Bastia","Bordeaux","Evian","Guingamp","Lille","Lorient","Lyon","Marseille","Monaco","Montpellier","Nantes","Nice","Paris","Reims","Rennes","Saint-Etienne","Sochaux","Toulouse","Valenciennes"]
    ClassementGoalAverage=[]
    y = 0
     
     
    #But marque
     
    def ButMarqueDomicile(y,DesLignes,UneListe):
         csvfile = open ("ligue1.data", "rb")
         DesLignes=csv.reader(csvfile)
         UneListe=ListeClub
         pointeur_liste=ListeClub.index(y)
         sommebutdomicile = 0
         k = 0
         for row in DesLignes:
              if row[1] == ListeClub[pointeur_liste]:
                   k = int(row[3])
                   sommebutdomicile += k
         return(sommebutdomicile)
     
    def ButMarqueExterieur(y,DesLignes,UneListe):
         csvfile = open ("ligue1.data", "rb")
         DesLignes=csv.reader(csvfile)
         UneListe=ListeClub
         pointeur_liste=ListeClub.index(y)
         sommebutexterieur = 0
         e = 0
         for row in DesLignes:
              if row[2] == ListeClub[pointeur_liste]:
                   e = int(row[4])
                   sommebutexterieur += e
         return(sommebutexterieur)
     
    #but encaisse
     
    def ButEncaisseDomicile(y,DesLignes,UneListe):
         csvfile = open ("ligue1.data", "rb")
         DesLignes=csv.reader(csvfile)
         UneListe=ListeClub
         pointeur_liste=ListeClub.index(y)
         sommebutencaissedomicile = 0
         k = 0
         for row in DesLignes:
              if row[1] == ListeClub[pointeur_liste]:
                   k = int(row[4])
                   sommebutencaissedomicile += k
         return(sommebutencaissedomicile)
     
    def ButEncaisseExterieur (y,DesLignes,UneListe):
         csvfile = open ("ligue1.data", "rb")
         DesLignes=csv.reader(csvfile)
         UneListe=ListeClub
         pointeur_liste=ListeClub.index(y)
         sommebutexterieur = 0
         e = 0
         for row in DesLignes:
              if row[2] == ListeClub[pointeur_liste]:
                   e = int(row[3])
                   sommebutexterieur += e
         return(sommebutexterieur)
     
    #Golaverage
     
    def Golaverage():
         y=input("Entrez le nom d'un club de Ligue 1 :")
         while y not in ListeClub:
              y=input("Entrez le nom d'un autre club de Ligue 1 :")
         a=ButMarqueDomicile(y,lines,ListeClub)
         b=ButMarqueExterieur(y,lines,ListeClub)
         c=ButEncaisseDomicile(y,lines,ListeClub)
         d=ButEncaisseExterieur(y,lines,ListeClub)
         e=a+b
         f=c+d
         return(e-f)
     
    #Classement Goal average
     
    def afficherGoalAverage ():

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Je n'y connais rien en "goal-average", mais voilà une idée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ListeClub = [["Ajaccio", 12], ["Bastia", 15], ["Bordeaux", 8], ["Evian", 5]]
     
    classement = sorted(ListeClub, key=lambda v: v[1], reverse=True)
     
    print(classement)
     
    [['Bastia', 15], ['Ajaccio', 12], ['Bordeaux', 8], ['Evian', 5]]
    J'ai mis des chiffres au hasard: j'espère qu'Evian ne m'en voudra pas...

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 3
    Par défaut
    En faite je pars d'une data comme celle çi:
    1,Montpellier,Paris,1,1,09/08/2013
    1,Evian,Sochaux,1,1,10/08/2013
    1,Lille,Lorient,1,0,10/08/2013
    1,Valenciennes,Toulouse,3,0,10/08/2013

    en premier on a la journée puis l"équipe à domicile puis l'équipe à l'extérieur, le score et la date.
    Mes fonctions qui calcul le goal average marche mais j'arrive pas classer les équipes de ma liste par rapport mes goal average calculer.

  4. #4
    Membre émérite
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Par défaut
    Citation Envoyé par samcro7 Voir le message
    En faite je pars d'une data comme celle çi:
    1,Montpellier,Paris,1,1,09/08/2013
    1,Evian,Sochaux,1,1,10/08/2013
    1,Lille,Lorient,1,0,10/08/2013
    1,Valenciennes,Toulouse,3,0,10/08/2013

    en premier on a la journée puis l"équipe à domicile puis l'équipe à l'extérieur, le score et la date.
    Mes fonctions qui calcul le goal average marche mais j'arrive pas classer les équipes de ma liste par rapport mes goal average calculer.
    Bonsoir,
    Je ne vois pas trop ce que vos données changent dans l'approche de tyrtamos.
    PS: goal average, ça fait plus "in" que moyenne de but.

    D'autre part, l'utilisation de dictionnaire serait ici, en première approche à exclure: les dictionnaires ne conservent pas l'ordre.

    Clodion

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 3
    Par défaut
    Bonsoir,

    Dans l'approche de tyrtamos j'ai l'impression que les valeurs de goal average sont connu, alors que je dois les calculés puis une fois que je les conné, je dois faire le classement.
    Par Goalaverage j'entends nombre de but marqué - nombre de but encaissé sur une saison.

  6. #6
    Membre émérite
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Par défaut
    Citation Envoyé par samcro7 Voir le message
    Bonsoir,

    Dans l'approche de tyrtamos j'ai l'impression que les valeurs de goal average sont connu, alors que je dois les calculés puis une fois que je les conné, je dois faire le classement.
    Par Goalaverage j'entends nombre de but marqué - nombre de but encaissé sur une saison.
    Bonsoir,
    Dans son script oui.
    Ce n'est pas très compliqué d'ajouter une colonne et d'y inclure la moyenne de but.
    Il est aussi possible de bien comprendre comment fonctionne la structure indiquée par tyrtamos et de l'adapter à une fonction externe…


    Citation Envoyé par samcro7 Voir le message
    alors que je dois les calculés puis une fois que je les conné, je dois faire le classement.
    Oui, c'est certain. On ne peut les calculer qu'une fois qu'on les connaît et faire le classement ensuite.
    Donc tant que la moyenne de buts n'est pas connue, il n'y a pas de classement!
    Donc aucun problème…

    Clodion

Discussions similaires

  1. Réponses: 6
    Dernier message: 16/07/2012, 17h43
  2. Créer un dictionnaire à partir d'une liste
    Par jouclar dans le forum Général Python
    Réponses: 7
    Dernier message: 25/04/2012, 22h09
  3. [DOM4J] Créer un Xpath à partir d'une liste
    Par anisse4 dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 30/06/2009, 13h03
  4. Réponses: 1
    Dernier message: 14/07/2008, 11h17
  5. comment créer un rpm à partir d'une lib source
    Par kris1 dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 06/12/2007, 17h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo