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 :

Petit problème de listes de listes


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 2
    Par défaut Petit problème de listes de listes
    Bonjour à tous !

    J'essaye de créer une liste de listes pour y stocker des objets "case" comme ci dessous. Cependant, je n'arrive pas à trouver la bonne syntaxe, le terminal m'affiche toujours "IndexError: list index out of range". J'ai aussi essayé de mettre de simples nombres à la place d'un objet "case" mais la même erreur s'affiche :/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Monde=[]
    Monde[posx][posy]=c
    ase

    Quelle est la bonne syntaxe ?
    Merci d'avance !

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

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

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    comme tu le dis bien il s'agit d'une liste de listes, donc pour définir un Monde de maxx sur maxy remplit d'objets case :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Monde = [[case for i in range(maxx)] for j in range(maxy)]
    Monde[x][y] = arbre
    Monde[x2][y2] = joueur
    etc.

  3. #3
    Nouveau candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 2
    Par défaut
    Merci de ta réponse ! J'ai essayé comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    case=CreerCase("","","","")
    Monde = [[case for i in range(lcartex)] for j in range(lcartey)]
    Et un peu plus loin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    case=CreerCase(mode,texture,objet,evt)
    Monde[posx][posy]=case
    Mais pour cette dernière ligne, j'ai toujours l'erreur "IndexError: list index out of range"...

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

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

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    Citation Envoyé par Spynchro Voir le message
    Mais pour cette dernière ligne, j'ai toujours l'erreur "IndexError: list index out of range"...
    c'est que tu dois adresser trop loin dans le tableau, que valent lcartex, lcartey, posx et posy ?
    au besoin fais un debug à coups de print de ces valeurs, tu seras vite fixé

  5. #5
    Futur Membre du 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
    Par défaut
    Citation Envoyé par Spynchro Voir le message
    Merci de ta réponse ! J'ai essayé comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    case=CreerCase("","","","")
    Monde = [[case for i in range(lcartex)] for j in range(lcartey)]
    Et un peu plus loin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    case=CreerCase(mode,texture,objet,evt)
    Monde[posx][posy]=case
    Mais pour cette dernière ligne, j'ai toujours l'erreur "IndexError: list index out of range"...
    Bonsoir, il me semble que ton posx et ton posy sont inversés puisque case est une liste de lcartey listes de lcartex éléments d'après ta déclaration.

Discussions similaires

  1. Regrouper une liste en liste de listes
    Par West01 dans le forum Prolog
    Réponses: 12
    Dernier message: 14/03/2008, 14h07
  2. Petits problèmes avec les listes
    Par cepekinio dans le forum Prolog
    Réponses: 4
    Dernier message: 30/10/2007, 13h23
  3. petit problème sur les listes chaînées
    Par poche dans le forum C
    Réponses: 14
    Dernier message: 19/03/2007, 16h53
  4. Petit problème de liste déroulante (encore un)
    Par kabal dans le forum Struts 1
    Réponses: 7
    Dernier message: 10/12/2006, 15h08
  5. Petit problèmes avec display list et transformations
    Par Baptiste Wicht dans le forum OpenGL
    Réponses: 5
    Dernier message: 10/02/2006, 17h00

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