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 :

liste, distributivité et sous liste [Python 2.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 22
    Par défaut liste, distributivité et sous liste
    Bonjour,

    J'ai un exercice à faire, mais je tourne en rond depuis quelques semaines. Je ne trouve pas dans mon cours la réponse à ma situation et ce n'est pas faute de lire et le relire. Je suis allé voir aussi dans la documentation python et autres tutoriels sur le net, mais rien n'y fais, je ne vois pas quoi faire. Si vous avez des pistes pour m'aider à comprendre, ce serai super. Bien évidement, je ne demande pas la solution, mais des pistes qui vont me permettre de trouver la solution. Alors voici ma situation:**

    je dois reproduire le même résultat que cette ce programme en utilisant for de manière plus traditionnel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> [[x*y for x in [2,3]] for y in [5,6,7]]
    [[10, 15], [12, 18], [14, 21]]
    voici ce à quoi j'arrive dans une écriture plus classique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> z = []
    >>> for y in [5,6,7]:
    ...     for x in [2,3]:
    ...             z += [x*y]
    ... 
    >>> z
    [10, 15, 12, 18, 14, 21]
    Comme vous pouvez le voir, je n'arrive pas au même résultat.

    Est-ce que vous auriez une piste à me donner pour pouvoir développer en fonction de y, des sous-listes ?

    Merci pour votre soutient,

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 736
    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 736
    Par défaut
    Salut,

    La différence est que la boucle for x in [2, 3] accumule les résultats dans z.
    Elle devrait les stocker dans une sous liste qu'on ajoute à z en sortie de boucle.

    Est-ce clair?

    - W
    PS: comment ne pas en dire trop pour vous laisser le plaisir de découvrir comment coder çà tout seul?
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 22
    Par défaut
    Merci wiztricks pour ton intervention.

    Si je comprends ce que tu dis, je n'arrive pas ce soir à le mettre en pratique. Demain il fera jour et je vais essayer d'avancer avec cette idée. Le truc qui bloque ce soir c'est le stockage dans une sous-liste. Je vais travailler ça.

    Bonne nuit, à demain,

  4. #4
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Citation Envoyé par loblique Voir le message
    Merci wiztricks pour ton intervention.

    Si je comprends ce que tu dis, je n'arrive pas ce soir à le mettre en pratique. Demain il fera jour et je vais essayer d'avancer avec cette idée. Le truc qui bloque ce soir c'est le stockage dans une sous-liste. Je vais travailler ça.

    Bonne nuit, à demain,
    Si vraiment, vous avez besoin d'exemples (ce serait dommage), une recherche sur les listes en compréhension ou les compréhensions de liste vous donnera la réponse...

  5. #5
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 22
    Par défaut
    Merci encore pour votre aide !!!

    J'ai une solution à proposer, donc c'est bon. La suggestion de wiztricks m'a fait réfléchir sur cette sous-liste, mais aussi sur le déroulement de avec l'aide d'un print pour une pseudo débugage et bien observer le déroulement de la boucle. Mais il y avait aussi une astuce qui m'a rendu chèvre, c'est de vider cette sous-liste à chaque déroulement de la première boucle. Assez parlé, voici ce que je propose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> z=[];w=[]
    >>> for y in [5,6,7]:
    ...     for x in [2,3]:
    ...             w+=[y*x]
    ...     z+=[w]
    ...     w=[]
    ... 
    >>> z
    [[10, 15], [12, 18], [14, 21]]
    C'est de ne pas avoir vu ce w=[] qui m'a rendu chèvre.

    Maintenant, il existe certainement d'autres solutions hors celle plus élégante déjà cité. Si vous avez des propositions, je suis preneur par curiosité, car mon exercice est compris.

    Merci encore pour votre soutient à tous.

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 736
    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 736
    Par défaut
    Salut,

    Un truc plus propre?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> z = []
    >>> for y in [5,6,7]:
    ...     u = []
    ...     for x in [2, 3]:
    ...         u.append(x*y)
    ...     z.append(u)
    ...
    >>> z
    [[10, 15], [12, 18], [14, 21]]
    Plus acrobatique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> z = []
    >>> for y in [5,6,7]:
    ...     z.append([])
    ...     for x in [2, 3]:
    ...         z[-1].append(x*y)
    ...
    >>> z
    [[10, 15], [12, 18], [14, 21]]
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

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

Discussions similaires

  1. Parcours de listes et de sous listes.
    Par alcibiade dans le forum Lisp
    Réponses: 8
    Dernier message: 09/05/2011, 23h19
  2. [AJAX] liste liée a une liste liée a une liste
    Par dirty_harry dans le forum AJAX
    Réponses: 2
    Dernier message: 03/07/2009, 11h18
  3. liste en plusieur sous liste
    Par kakashi05 dans le forum Lisp
    Réponses: 11
    Dernier message: 18/05/2009, 11h01
  4. Des listes et ses sous listes
    Par {F-I} dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 23/10/2008, 07h06
  5. Réponses: 5
    Dernier message: 06/05/2007, 18h29

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