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 :

recupurer le nombre des valeur "tuple" affecter à un clé dans un dict


Sujet :

Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 90
    Par défaut recupurer le nombre des valeur "tuple" affecter à un clé dans un dict
    Salut a tous



    je veut savoir est ce que c possible de compter le nombre des valeur pour un clé de dictionnaire

    par exemple je veut saoir le nombre des tuples affecter à D1 ,D2


    dict ={D1 : (1,3,4),(4,5,6),(7,8,9),(8,9,7),(9,0,7), D1 : ('a','z','e'),('t','y','u'),('q','s','d')}

    Merci pour vos repense

  2. #2
    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
    Bonjour,

    Citation Envoyé par khaled87 Voir le message
    je veut savoir est ce que c possible de compter le nombre des valeur pour un clé de dictionnaire
    par exemple je veut saoir le nombre des tuples affecter à D1 ,D2
    A mon humble avis il n'y a qu'une seule valeur par clef de dictionnaire.
    Cependant, il est toujours possible d'assigner une liste, un tuple, un dictionnaire… à une clef de dictionnaire.
    Dans ce cas, le comptage ne pose pas de problème!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> dct={"a":[1,2,3], 2:(4,5,6,7), "3":{1:"a", 2:"z", 3:"e", 4:"r", 5:"t"}}
    >>> dct["a"], dct[2], dct["3"]
    ([1, 2, 3], (4, 5, 6, 7), {1: 'a', 2: 'z', 3: 'e', 4: 'r', 5: 't'})
    >>> len(dct["a"]), len(dct[2]), len(dct["3"])
    (3, 4, 5)
    >>>
    Clodion

  3. #3
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 128
    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 128
    Par défaut
    A mon humble avis il n'y a qu'une seule valeur par clef de dictionnaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> dico = {(12, 5): 'a'}
    >>> dico
    {(12, 5): 'a'}
    Ah ?

  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
    Bonjour,

    Citation Envoyé par fred1599 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> dico = {(12, 5): 'a'}
    >>> dico
    {(12, 5): 'a'}
    Ah ?
    Oui…
    Ici la clef ne renvoie qu'une seule et unique valeur ("a")…
    Et la clef elle-même n'est qu'une seule valeur, un tuple, qui contient lui-même deux valeurs, non?
    Dans l'exemple proposé, la structure n'est pas valide, car il y a 5 valeurs distinctes pour la même première clef (D1).

    Clodion

  5. #5
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 128
    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 128
    Par défaut
    Désolé j'avais mal compris le sens de ta phrase, quand je l'ai lu j'avais compris qu'on ne pouvait avoir qu'une seule valeur par clé, d'où mon exemple.

    @Khaled87

    As-tu testé sur un interpréteur ton code ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 90
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    Désolé j'avais mal compris le sens de ta phrase, quand je l'ai lu j'avais compris qu'on ne pouvait avoir qu'une seule valeur par clé, d'où mon exemple.

    @Khaled87

    As-tu testé sur un interpréteur ton code ?

    @ fred1599 merci beaucoup pour votre repense ,c'est sa ce que je cherche
    len dict['key']

    Merci

  7. #7
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 128
    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 128
    Par défaut
    Comme tu as établi tes données je ne vois pas comment ça fonctionnerait.

    Il aurait fallu faire le test pour ce rendre compte que ta donnée de départ n'est pas correcte...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> dict ={D1 : (1,3,4),(4,5,6),(7,8,9),(8,9,7),(9,0,7), D1 : ('a','z','e'),('t','y','u'),('q','s','d')}
      File "<stdin>", line 1
        dict ={D1 : (1,3,4),(4,5,6),(7,8,9),(8,9,7),(9,0,7), D1 : ('a','z','e'),('t','y','u'),('q','s','d')}
                                   ^
    SyntaxError: invalid syntax
    Une erreur de syntaxe ressort de votre proposition, pour cela vous devez présenter correctement cette donnée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> dict ={"a" : [(1,3,4),(4,5,6),(7,8,9),(8,9,7),(9,0,7)], "a": [('a','z','e'),('t','y','u'),('q','s','d')]}
    >>> dict
    {'a': [('a', 'z', 'e'), ('t', 'y', 'u'), ('q', 's', 'd')]}
    Et là on voit que d'avoir les même clés, ça ne fonctionne pas...

    Alors avec des clés différentes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> dict ={"a" : [(1,3,4),(4,5,6),(7,8,9),(8,9,7),(9,0,7)], "b": [('a','z','e'),('t','y','u'),('q','s','d')]}
    >>> dict
    {'b': [('a', 'z', 'e'), ('t', 'y', 'u'), ('q', 's', 'd')], 'a': [(1, 3, 4), (4, 5, 6), (7, 8, 9), (8, 9, 7), (9, 0, 7)]}
    Et là ça roule! Maintenant on a presque une donnée correcte, seulement ta variable a le même nom qu'un mot clé python, c'est dict, c'est à éviter, on le modifie...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> dico ={"a" : [(1,3,4),(4,5,6),(7,8,9),(8,9,7),(9,0,7)], "b": [('a','z','e'),('t','y','u'),('q','s','d')]}
    >>> dico
    {'b': [('a', 'z', 'e'), ('t', 'y', 'u'), ('q', 's', 'd')], 'a': [(1, 3, 4), (4, 5, 6), (7, 8, 9), (8, 9, 7), (9, 0, 7)]}
    Purée on est bon, on a enfin une donnée correcte à présenter aux membres du forum. Comment peux-tu aller plus loin si ces bases ne sont mêmes pas respectées.

    On continue avec la solution à ton problème, qui est en effet de la forme len(dico[key])

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> for key in dico:
    ...     print("key -> {0}, length={1}".format(key, len(dico[key])))
    ... 
    key -> b, length=3
    key -> a, length=5
    Bref faites attention à la présentation des données, vérifier le minimum, c'est à dire qu'elle soit présentée correctement.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 14/02/2011, 00h53
  2. Réponses: 9
    Dernier message: 05/04/2009, 03h00
  3. Réponses: 9
    Dernier message: 05/11/2007, 11h05

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