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 :

Problème recopie de tableaux [Python 3.X]


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Problème recopie de tableaux
    Bonjour,
    En Python 3, avec IDLE, je tape les instructions suivantes :

    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    tableau = [[0]*3]*2
    buffer = [list(range(3)),list(range(5,8))]
    for i in range(2):
        for j in range(3):
            tableau[i][j] = buffer[i][j]
    print('buffer = ',buffer)
    print('tableau = ',tableau)

    et je lis sur la console les lignes suivantes :

    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> 
    buffer =  [[0, 1, 2], [5, 6, 7]]
    tableau =  [[5, 6, 7], [5, 6, 7]]

    …alors que je m'attendais à ce que "tableau" soit égal à "buffer".

    Pourriez-vous SVP m'expliquer ? J'ai lu que l'on peut recopier des listes différemment mais j'ai besoin de comprendre ce problème pour savoir faire des modifications de listes...

    Merci d'avance.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Ta façon de créer le tableau ne convient pas, en procédant ainsi, tu crées dans la liste deux références d'une même liste.

    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
     
    >>> t = [[0]*3]*2
    >>> t
    [[0, 0, 0], [0, 0, 0]]
    >>> t[1][1] = 5
    >>> t
    [[0, 5, 0], [0, 5, 0]]
    >>> 
    >>> # comme ceci ce sera mieux
    ...
    >>> t = [[0]*3 for i in range(2)]
    >>> t
    [[0, 0, 0], [0, 0, 0]]
    >>> t[1][1] = 4
    >>> t
    [[0, 0, 0], [0, 4, 0]]

  3. #3
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Nickel. C'est limpide.
    Merci.

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

Discussions similaires

  1. Problème avec des tableaux
    Par nawake dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/10/2007, 20h54
  2. Réponses: 6
    Dernier message: 20/02/2007, 17h00
  3. Problème avec les tableaux de pointeurs
    Par TheDoci dans le forum C
    Réponses: 2
    Dernier message: 07/01/2007, 13h04
  4. [Débutant] Problèmes avec les tableaux.
    Par Lwq dans le forum C++
    Réponses: 6
    Dernier message: 01/11/2005, 12h54

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