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 :

garder la plus haute valeur pour chaque année


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    manutentionnaire
    Inscrit en
    Décembre 2020
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : manutentionnaire

    Informations forums :
    Inscription : Décembre 2020
    Messages : 31
    Par défaut garder la plus haute valeur pour chaque année
    Bonjour,

    j'ai une liste suivante :

    [['2019', 5363], ['2019', 5678], ['2019', 6042], ['2020', 9791], ['2020', 10109], ['2020', 10323], ['2020', 10633]]

    et aimerai obtenir ceci (garder la plus haute valeur pour chaque année) :

    [['2019', 6042], ['2020', 10633]]

    je tourne en rond avec se problème
    merci

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Hello,

    Je ferai bien un p'tit truc comme ci-dessous,

    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
    data = [    
        ['2019', 5363],
        ['2019', 5678],
        ['2019', 6042],
        ['2020', 9791],
        ['2020', 10109],
        ['2020', 10323],
        ['2020', 10633]
    ]
     
     
    def set_maxi_values(result, year, value):
        try:
            actual_value = result[year]
            if value > actual_value:
                result[year] = value
        except KeyError:
            result[year] = value
     
     
    my_result = {}
    for y, v in data:
        set_maxi_values(my_result, y, v)
     
    print([[u, v] for u, v in my_result.items()])
    Mais pas sûr que tu comprennes

  3. #3
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    Tu peux utiliser groupby de itertools pour grouper les différentes valeurs par année:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    from itertools import groupby
     
    data = [['2019', 5363], ['2019', 5678], ['2019', 6042], ['2020', 9791], ['2020', 10109], ['2020', 10323], ['2020', 10633]]
     
    result = [max(i[1]) for i in groupby(data, lambda x: x[0])]

  4. #4
    Membre averti
    Homme Profil pro
    manutentionnaire
    Inscrit en
    Décembre 2020
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : manutentionnaire

    Informations forums :
    Inscription : Décembre 2020
    Messages : 31
    Par défaut
    merci pour votre aide, ça fonctionne très bien. je ne connaissais pas le module itertools ... go pour la lecture

Discussions similaires

  1. Sélectionner les 15 plus grandes valeurs pour chaque mois
    Par Monkey_D.Luffy dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 24/06/2009, 10h50
  2. Réponses: 1
    Dernier message: 26/06/2007, 12h26
  3. [SQL] Sélectionner un mois pour chaque année
    Par kreatik dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/06/2007, 14h35
  4. Réponses: 18
    Dernier message: 21/10/2006, 19h10
  5. Moyenne 5 dernières année pour chaque année?
    Par kissmytoe dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/02/2006, 19h28

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