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 :

Créer une grille


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    OOpps
    Inscrit en
    Mai 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : OOpps

    Informations forums :
    Inscription : Mai 2015
    Messages : 11
    Points : 5
    Points
    5
    Par défaut Créer une grille
    Bonsoir à tous,
    débutant en python, j'ai voulu créer une grille toute bête pour un jeu tout aussi simple, mais en tentant de modifier l'une des cases ensuite, je constate que j'en modifie plusieurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    grille = [[0] * 2] * 3
    print(grille)
    grille[0][0] = 1
    print(grille,"\n")
    qui produit :
    [[0, 0], [0, 0], [0, 0]]
    [[1, 0], [1, 0], [1, 0]]

    Pour obtenir le résultat souhaité, j'ai tenté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    grille1 = [[0,0],[0,0],[0,0]] 
    print(grille1)
    grille1[0][0] = 1
    print(grille1)
    qui donne le résultat voulu :
    [[0, 0], [0, 0], [0, 0]]
    [[1, 0], [0, 0], [0, 0]]


    Je ne parviens pas m'expliquer ce qui se passe dans le premier cas (même variable exprimée dans plusieurs cases ?) et, en particulier s'il est possible de modifier un seul élément de la première grille.

    Merci pour votre aide !

  2. #2
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    à priori c'est une histoire de référence à la même variable (liste), dans le même ordre d'idée que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> x = 'pouet'; y = x; y is x
    True
    >>> x = 'coincoin'; y is x
    False
    >>> x = 'pouet'; y is x
    True
    du coup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> grille = [[0] * 2] * 3; grille[0][0] = 1
    >>> grille[0] is grille[1] is grille[2]
    True

  3. #3
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 817
    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 : 3 817
    Points : 7 110
    Points
    7 110
    Par défaut
    Une méthode souvent utilisée "les lists comprehensions"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> grille = [[0 for _ in range(2)] for _ in range(3)]
    >>> grille
    [[0, 0], [0, 0], [0, 0]]
    >>> grille[0][0] = 1
    >>> grille
    [[1, 0], [0, 0], [0, 0]]
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  4. #4
    Futur Membre du Club
    Homme Profil pro
    OOpps
    Inscrit en
    Mai 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : OOpps

    Informations forums :
    Inscription : Mai 2015
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Merci ! Bien pratique ces list comprehensions, deux boucles économisées pour créer une grille !

Discussions similaires

  1. créer une grille de loto
    Par guylainejm dans le forum Powerpoint
    Réponses: 1
    Dernier message: 30/01/2009, 14h03
  2. Comment créer une grille dans VB.net
    Par AndreDvl dans le forum VB.NET
    Réponses: 10
    Dernier message: 05/03/2008, 12h13
  3. Comment créer une Grille numérotée ?
    Par bassim dans le forum Composants VCL
    Réponses: 6
    Dernier message: 18/09/2005, 03h00
  4. Créer une grille avec centage
    Par lil_jam63 dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 16/08/2004, 16h21

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