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 :

Dictionnaire: identifier la clé numérique la plus élevée


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Occupé
    Inscrit en
    Décembre 2021
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Occupé

    Informations forums :
    Inscription : Décembre 2021
    Messages : 31
    Par défaut Dictionnaire: identifier la clé numérique la plus élevée
    Bonjour à tous.

    Connaissez-vous un moyen d'identifier la clé, bien entendu numérique, d'un dictionnaire pour pouvoir ensuite quand je le souhaite supprimer la paire clé/valeur du dictionnaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    dico ={ 296: [3,5,6]
            287: [56,10]
            28 : [11,63] }
    Donc ici, la possibilité d'identifier 296.

    Merci à vous tous.

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 603

  3. #3
    Membre averti
    Homme Profil pro
    Occupé
    Inscrit en
    Décembre 2021
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Occupé

    Informations forums :
    Inscription : Décembre 2021
    Messages : 31
    Par défaut
    Bonjour,
    Oui merci pour le lien sauf qu'initialement, je ne connais pas la clé qui est à supprimer. Il me faut identifier sa valeur de clé et non pas la valeur max d'une clé.
    Je ne sais pas si je me fais bien compris

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 603
    Par défaut
    Heu, je n'ai pas tout comprendu.

    Vous souhaitez supprimer un couple clé/valeur(s) d'un dictionnaire sans connaître la valeur de la clé à supprimer ?

    Comment allez-vous déterminer cette clé à supprimer ?

    Si vous avez sa valeur et souhaitez savoir si elle est présente dans le dictionnaire, suffit de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if 296 in dico:
        del dico[296]
    Mais mon petit doigt me dit que la réponse ne sera pas celle attendue

  5. #5
    Membre averti
    Homme Profil pro
    Occupé
    Inscrit en
    Décembre 2021
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Occupé

    Informations forums :
    Inscription : Décembre 2021
    Messages : 31
    Par défaut
    Oui c'est là la difficulté. Je veux identifier la clé la plus élevée.

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par MagicJohnson Voir le message
    Je ne sais pas si je me fais bien compris
    Pas super, non, donc je vais ratisser large. Le point de départ, c'est dico.keys() qui te récupère toutes les clefs de ton dictionnaire. De là tu peux investiguer pour extraire celle dont tu as besoin. Ton titre parle de la plus élevée donc need=max(dico.keys()). Ensuite del dico[need]. Ou plus simplement del dico[max(dico.keys())].
    Si maintenant tu cherches la clef par rapport à la valeur qu'elle est censée avoir, alors il te faut jouer sur dico.items() qui te renvoie une suite de couple clef+valeur. De là tu cherches la valeur souhaitée et tu récupères la clef qui y fait référence.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Membre averti
    Homme Profil pro
    Occupé
    Inscrit en
    Décembre 2021
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Occupé

    Informations forums :
    Inscription : Décembre 2021
    Messages : 31
    Par défaut
    Ok merci. Donc pas trop le choix que de repasser par une liste.
    Merci bien super.
    Bonne fin de journée.

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> dico
    {296: [3, 5, 6], 287: [56, 10], 28: [11, 63]}
    >>> dico.pop(max(dico, key=lambda k: dico[k]))
    [56, 10]
    >>> dico
    {296: [3, 5, 6], 28: [11, 63]}
    >>>
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Invité
    Invité(e)
    Par défaut
    Salut !

    Pour copiter Wiz avec la bonne soluce par contre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> dico = {296: [3, 5, 6], 287: [56, 10], 28: [11, 63]}
     
    >>> dico.pop(max(dico))
    [3, 5, 6]
     
    >>> dico
    {287: [56, 10], 28: [11, 63]}
    C'est moi qui ait la bonne réponse ?

  10. #10
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 921
    Billets dans le blog
    8
    Par défaut
    Citation Envoyé par LeNarvalo Voir le message

    C'est moi qui ait la bonne réponse ?
    Yessss!

  11. #11
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Citation Envoyé par LeNarvalo Voir le message
    C'est moi qui ait la bonne réponse ?
    Cher jojo la gâchette: cette réponse a déjà été donnée par Sve@r....
    Est ce qu'elle est "juste", çà dépend de ce qu'on veut (en tout cas elle n'apporte rien à ce qui a déjà été dit).

    Moi je réagis juste à:
    Citation Envoyé par Sve@r
    Si maintenant tu cherches la clef par rapport à la valeur qu'elle est censée avoir, alors il te faut jouer sur dico.items() qui te renvoie une suite de couple clef+valeur. De là tu cherches la valeur souhaitée et tu récupères la clef qui y fait référence.
    a laquelle le PO semble conclure:
    Ok merci. Donc pas trop le choix que de repasser par une liste.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  12. #12
    Invité
    Invité(e)
    Par défaut
    jojo la gâchette
    Ha ha !
    Comme dit le proverbe (ou pas) : Il y en bien une qui touchera la cible !

    J'vais changé mon pseudo ! Si y a moyen... A pas moyen...

    +1 pour @Sve@r et pour toi aussi du coup...
    Dernière modification par Invité ; 19/01/2022 à 19h25.

  13. #13
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 921
    Billets dans le blog
    8
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> dico
    {296: [3, 5, 6], 287: [56, 10], 28: [11, 63]}
    >>> dico.pop(max(dico, key=lambda k: dico[k]))
    [56, 10]
    >>> dico
    {296: [3, 5, 6], 28: [11, 63]}
    >>>
    - W
    Et à quoi correspond ce code? Parce que perso, de ce que je comprends, j'arbitre en faveur de jojo la gâchette .

  14. #14
    Invité
    Invité(e)
    Par défaut
    Le problème c'est qu'on ne sait pas vraiment ce que veux le PO...
    Est-ce que c'est la somme de la liste ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    max(dico, key=lambda k: sum(dico[k]))
    Ou le premier élément donc notre roi aurait raison, si je ne dis pas de bêtise (peu probable que j'en dise )...

  15. #15
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 921
    Billets dans le blog
    8
    Par défaut
    En effet si c'est le max du 1er élément de la liste alors...
    Je ne l'avais pas compris, désolé.

  16. #16
    Membre averti
    Homme Profil pro
    Occupé
    Inscrit en
    Décembre 2021
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Occupé

    Informations forums :
    Inscription : Décembre 2021
    Messages : 31
    Par défaut
    Non, ce n'était pas ça.

    En somme, je souhaitais supprimer la paire clé/valeur dont la clé est la plus élevée, les clefs n'étant composées que d'integer .

  17. #17
    Invité
    Invité(e)
    Par défaut
    Donc c'était bien ça ?

  18. #18
    Membre averti
    Homme Profil pro
    Occupé
    Inscrit en
    Décembre 2021
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Occupé

    Informations forums :
    Inscription : Décembre 2021
    Messages : 31
    Par défaut
    Dans {296: [3, 5, 6], 287: [56, 10], 28: [11, 63]}

    je voulais trouver

    296

  19. #19
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 921
    Billets dans le blog
    8
    Par défaut
    Citation Envoyé par MagicJohnson Voir le message
    Dans {296: [3, 5, 6], 287: [56, 10], 28: [11, 63]}

    je voulais trouver

    296
    Du coup c'est:
    Ce qui correspond à

  20. #20
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Je conseille généralement de privilégier l'explicite et donc l'écriture max(dico.keys()).
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 28/08/2009, 18h33
  2. Réponses: 5
    Dernier message: 13/03/2009, 10h57
  3. Réponses: 6
    Dernier message: 19/05/2008, 17h55
  4. trouver la valeur la plus élevée dans un tableau
    Par denis.ws dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 16/05/2008, 07h43
  5. [MySQL] Valeur la plus élevée d'un champ
    Par belzeluc dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/01/2007, 21h24

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