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 :

Récupérer une clé dans un dictionnaire à partir d'une valeur.


Sujet :

Python

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Points : 140
    Points
    140
    Par défaut Récupérer une clé dans un dictionnaire à partir d'une valeur.
    Bonjour,

    Je voudrais savoir si il est possible et si il existe une fonction rapide pour récupérer une clé dans un dictionnaire à partir d'une valeur.

    Par exemple ;

    dict={1:2, 2:3}
    j'ai la valeur 3 et je veux récupérer la clé, comment je fais?

    C'est peut être une question bete mais je ne vois pas.

    Alaninho

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    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 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Petite solution possible:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    d = {'a':3, 'b':7, 'c':1}
    val = 7
    print [c for c,v in d.items() if v==val]
    ['b']
    Attention: il pourrait y avoir plusieurs clés qui ont la même valeur, ou aucune: le résultat est donc une liste qui peut être vide.

    On peut fabriquer une fonction lambda:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cherchecle = lambda d, val: [c for c,v in d.items() if v==val]
    Tyrtamos
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 046
    Points : 1 376
    Points
    1 376
    Par défaut
    faut déjà être sûr que toutes les valeurs sont différentes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mondic.keys()[mondic.values().index(valeur)]

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Points : 140
    Points
    140
    Par défaut
    En faite, j'ai inversé le sens du premier dictionnaire et donc je peux trouvé ce que je veux, merci quand même.

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

Discussions similaires

  1. lire une table dans mysql a partir d'une certaine ligne
    Par persé dans le forum Requêtes
    Réponses: 6
    Dernier message: 22/03/2013, 16h11
  2. [Débutant] ajouter une image dans picturebox a partir d'une listbox
    Par gindistimoo dans le forum VB.NET
    Réponses: 1
    Dernier message: 30/05/2012, 14h40
  3. Réponses: 1
    Dernier message: 09/01/2012, 16h47
  4. Réponses: 3
    Dernier message: 16/09/2008, 17h08
  5. Réponses: 1
    Dernier message: 19/04/2008, 16h26

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