Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1031 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Listes en python : IndexError: list index out of range Hmmm

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Listes en python : IndexError: list index out of range Hmmm

n°1566078
jijiz
Posté le 28-05-2007 à 11:51:27  profilanswer
 

Bonjour à toutes et à tous,
 
En ce beau lundi de pentecôte, je compatis avec ceux qui bossent...
J'ai un problème de noob avec les listes pytho,
 
J'ai créé un objet ActionObjectUI qui comporte un attribu :  
self.InputPortObjectUI = []
 
J'ai créé deux accésseurs :
 

Code :
  1. def setOutputPort(self, _position, _port):
  2.         """ Set the setOutputPort port of the current ActionObjectUI """
  3.        
  4.         if self.getNbInputPorts() > _position:
  5.             newOutputPort = OutputPortObjectUI(QtCore.QPoint(8,8), QtCore.QPoint(self.getPosition().x() + self.getSize().x() -1 , self.getPosition().y() + 20 * ( _position + 1)), self.AttParent)
  6.             newOutputPort.setPort(_port)
  7. C'est lequel le mieux :
  8.             #self.OutputPortObjectUI[_position] = _port
  9.             self.OutputPortObjectUI.insert(_position, _port)
  10.         else:
  11.             return -1


 

Code :
  1. def getOutputPort(self, _pos):
  2.         """ return the output port wich is stored at the position _pos """
  3.         return self.OutputPortObjectUI[_pos];


 
et voici l'érreur :
 

Code :
  1. File "D:\WorkSpace\AFPython\Editor\ActionObjectUI.py", line 122, in getOutputPort
  2.     return self.OutputPortObjectUI[_pos];
  3. IndexError: list index out of range


 
Donc là je ne vois pas. Faut-il initialiser les listes en pythON????

mood
Publicité
Posté le 28-05-2007 à 11:51:27  profilanswer
 

n°1566081
masklinn
í dag viðrar vel til loftárása
Posté le 28-05-2007 à 11:54:09  profilanswer
 

jijiz a écrit :


Donc là je ne vois pas. Faut-il initialiser les listes en pythON????


Les listes ne sont pas "sparse" par défaut en python (c'est à dire qu'il n'est pas possible d'insérer un item à l'index 30 dans une liste vide), c'est tout, si tu imprimais le contenu de ta liste après avoir utilisé .insert (qui entre nous soit dit ne sert absolument à rien), tu verrais que tu as une liste d'un seul élément et que cet élément est à l'index 0.
 
Utilise un dict.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1566085
jijiz
Posté le 28-05-2007 à 11:58:30  profilanswer
 

masklinn a écrit :

Les listes ne sont pas "sparse" par défaut en python (c'est à dire qu'il n'est pas possible d'insérer un item à l'index 30 dans une liste vide), c'est tout, si tu imprimais le contenu de ta liste après avoir utilisé .insert (qui entre nous soit dit ne sert absolument à rien), tu verrais que tu as une liste d'un seul élément et que cet élément est à l'index 0.
 
Utilise un dict.


ok merci, je vais voir du coté des dic.  
Ce qui me choque c'est que dans mon programme de test je fais des insert aux indices 0 1 2 3 puis 4. Je ne fais pas n'importe nawak, or comme python est assez permissif en ce qui concerne le typage, fontionnement dynamique et d'autres trucs, je pensais que ça pouvait passer.
 
 
 
pour toi dic c'est dictionnaire? je ne vois pas l'utilité d'utiliser un dictionnaire car c'est un tableau d'objets que je veux creer.

Message cité 1 fois
Message édité par jijiz le 28-05-2007 à 12:01:36
n°1566095
masklinn
í dag viðrar vel til loftárása
Posté le 28-05-2007 à 12:09:48  profilanswer
 

jijiz a écrit :

ok merci, je vais voir du coté des dic.  
Ce qui me choque c'est que dans mon programme de test je fais des insert aux indices 0 1 2 3 puis 4.


Je ne sais pas où tu fais tes inserts, mais je sais qu'il n'y a aucun objet à l'index auquel tu essaies de récupérer ton objet, puisque Python gueule [:spamafote]  

jijiz a écrit :

je ne vois pas l'utilité d'utiliser un dictionnaire car c'est un tableau d'objets que je veux creer.


Ah bon, ben si tu n'as pas besoin de conseils je vais te laisser t'amuser tout seul hein.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1566098
jijiz
Posté le 28-05-2007 à 12:15:04  profilanswer
 

masklinn a écrit :

Je ne sais pas où tu fais tes inserts, mais je sais qu'il n'y a aucun objet à l'index auquel tu essaies de récupérer ton objet, puisque Python gueule [:spamafote]  
 
Ah bon, ben si tu n'as pas besoin de conseils je vais te laisser t'amuser tout seul hein.


Ah ben sois pas susceptible mon choux, je suis un noob, je me pose des questions c'est tout.
 

n°1566543
jijiz
Posté le 29-05-2007 à 10:21:06  profilanswer
 

masklinn a écrit :

Les listes ne sont pas "sparse" par défaut en python (c'est à dire qu'il n'est pas possible d'insérer un item à l'index 30 dans une liste vide), c'est tout, si tu imprimais le contenu de ta liste après avoir utilisé .insert (qui entre nous soit dit ne sert absolument à rien), tu verrais que tu as une liste d'un seul élément et que cet élément est à l'index 0.
 
Utilise un dict.


 
Je poste aujourd'hui pour te remercier de ton aide, tu as raisons, les dictionnaires sont beaucoup + adaptés pour ce que je veux faire.
 
Bonne journée,
 
Ju.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  Listes en python : IndexError: list index out of range Hmmm

 

Sujets relatifs
Python vs VB.net[Python] API Reseau et manipulation des paquets
Installer python sur son site[html] executer ou pas le fichier index.htm
Generer des fichiers index.html3 listes déroulantes interconectées
Appeler une fonction python dans un contexte java[Python]Suppresion de doublons dans une liste
[Python] Packager un programme[resolu]Incrémenter une Plage de cellule avec range ?
Plus de sujets relatifs à : Listes en python : IndexError: list index out of range Hmmm


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR