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 :

[can only concatenate list (not "int") to list] Merdouille a bord! [Python 2.X]


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Points : 11
    Points
    11
    Par défaut [can only concatenate list (not "int") to list] Merdouille a bord!
    Bonjour.
    Je tente de coder un petit jeu de la vie et là c'est la tuile.
    voila la déclaration de mon tableau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    def __init__(self,sizeOfmap):
    		self.Map = [[[0] for x in range(sizeOfmap+2)] for y in range(sizeOfmap+2)]
    et voila comme je souhaite y accéder:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cellCount = self.Map[x-1][y-1] + self.Map[x][y-1] + self.Map[x+1][y-1] + self.Map[x-1][y] + self.Map[x+1][y] + self.Map[x-1][y+1] + self.Map[x][y+1] + self.Map[x+1][y+1]
    Enfin voila le retour du python pas content! :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Traceback (most recent call last):
      File "CWGOL.py", line 63, in <module>
        jeu1.runMap()
      File "CWGOL.py", line 37, in runMap
        cellCount = self.Map[x-1][y-1] + self.Map[x][y-1] + self.Map[x+1][y-1] + self.Map[x-1][y] + self.Map[x+1][y] + self.Map[x-1][y+1] + self.Map[x][y+1] + self.Map[x+1][y+1] #compte les huit voisine
    TypeError: can only concatenate list (not "int") to list
    Le plus étrange c'est que cette partie du code a fonctionné !
    Merci d'avance.

    [edit]
    Le problème viens de la déclaration de la liste.

  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
    Tu es sur que tu ne te trompes pas avec ton tableau ?

    C'est un tableau de liste ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    >>> l = [[[0] for x in range(5)] for y in range(5)]
    >>> l
    [[[0], [0], [0], [0], [0]], [[0], [0], [0], [0], [0]], [[0], [0], [0], [0], [0]], [[0], [0], [0], [0], [0]], [[0], [0], [0], [0], [0]]]
    Chaque cellule est une liste elle-même.

    Ce ne serait pas plutôt ceci que tu veux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    >>> l = [[0 for x in range(5)] for y in range(5)]
    >>> l
    [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
    avec ce tableau tu pourras totaliser les valeurs des cases voisines avec ton code existant cellCount = self.Map...

    Cela dit, l'erreur que tu donnes semble dire qu'un des self.Map[x][y] retourne un entier, donc il y a peut-être autre chose ...

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

Discussions similaires

  1. [Package listings] Commentaires XML et quote
    Par arnobidul dans le forum Mise en forme
    Réponses: 0
    Dernier message: 27/07/2007, 11h54
  2. [débutant] erreur "indice de liste hors limites(1)"
    Par lidouka dans le forum Langage
    Réponses: 2
    Dernier message: 13/12/2005, 14h31

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