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 :

[DEB] Extraire d'une liste [Python 3.X]


Sujet :

Python

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 112
    Points : 98
    Points
    98
    Par défaut [DEB] Extraire d'une liste
    Bonjour à tous,
    Voici un exemple du livre "Data science from scratch" que j'ai simplifié
    on construit (si j'ai bien compris) une liste de dico.On se sert de tupples pour créer une relation entre les différents membres des dico.
    Ceci est créé par une liste friends incorporée dans chaque dico
    Mon problème est dans les dernières lignes du prg.
    Je voudrais avoir comme résultat
    les amis de Dun sont
    Hero
    Chi

    Je n'arrive pas à extraire seulement le nom , à chaque fois je récupère la list friends en entier
    (J'ai essayé plusieurs trucs mais rien ne marche)

    Merci de m'avoir consacré de votre temps



    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
     
    def number_of_friends(user):
        global a
        """how many friends does_user_have?"""
     
            return len(user["friends"])
     
     
     
     
    ##########################################################################
    users=[{"id":0,"name":"Hero"},
           {"id": 1,"name":"Dunn"},
           {"id":2,"name":"Chi"}
     
           ]
     
    friendships=[(0,1),(1,2)]
     
    #creation d'une liste d'amis à partir de users
    for user in users:
     
        user["friends"]=[]
     
    #les amis sont créés à partir de fiendships
     
    for i,j in friendships:
        print("i j ",i,j)#on lit les tuples
        users[i]["friends"].append(users[j])#add i as a friend of j
        users[j]["friends"].append(users[i])#add j as a friend of i
     
    #######Comment afficher seulement le "name" des amis"
     
    for user in users:
        b=number_of_friends(user)
        print("les amis de ",user["name"],"sont")
        for x in range(b):
            print( user["friends"][x])

  2. #2
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2010
    Messages : 654
    Points : 1 150
    Points
    1 150
    Par défaut
    Salut,

    Le problème vient de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    users[i]["friends"].append(users[j])
    En ce faisant vous ajoutez le dictionnaire situé à la position j dans la liste d’utilisateurs. Il vous faut ajouter uniquement le nom:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i,j in friendships:
        users[i]["friends"].append(users[j]["name"])#add i as a friend of j
        users[j]["friends"].append(users[i]["name"])#add j as a friend of i
    J

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 112
    Points : 98
    Points
    98
    Par défaut
    Merci

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 112
    Points : 98
    Points
    98
    Par défaut
    En conservant la première version
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    users[i]["friends"].append(users[j])
    on peut atteindre les name par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #######Comment afficher seulement le "name" des amis"
     
    for user in users:
        b=number_of_friends(user)
        print("les amis de ",user["name"],"sont")
        for x in range(b):
            print( user["friends"][x][name])
    Ce qu permet de conserver toute l'information à disposition

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

Discussions similaires

  1. [XL-2003] extraire d'une liste sous condition de critère avec combox
    Par VEROLYDE dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/09/2011, 14h51
  2. Réponses: 6
    Dernier message: 11/05/2007, 21h51
  3. Extraire Les Differentes Valeurs D'une Liste
    Par domdenoi dans le forum Excel
    Réponses: 4
    Dernier message: 11/04/2007, 11h11
  4. [Mail] Extraire des informations d'une liste
    Par Justin_C dans le forum Langage
    Réponses: 2
    Dernier message: 02/02/2007, 10h00
  5. Extraire une partie d'une liste grâce aux index
    Par Matt630 dans le forum Prolog
    Réponses: 7
    Dernier message: 14/12/2006, 10h05

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