Python liste des indices doivent être des entiers, pas de tuple" erreur
Je suis en train de travailler sur le déplacement d'un robot autour d'une grille 2d chambre de 8 x 8, et une partie est en cours d'initialisation des capteurs qui consistent le plus proche 5 carreaux autour du robot.
self.sensors = [0 for x in xrange(5)]
ici, je suis de la création d'un vide de tableau de 5 éléments.
mais lorsque je tente de définir la valeur de capteurs comme ceci:
if self.heading == 'East':
self.sensors[0] = self.room[self.x, self.y-1]
self.sensors[1] = self.room[self.x+1, self.y-1]
self.sensors[2] = self.room[self.x+1, self.y]
self.sensors[3] = self.room[self.x+1, self.y+1]
self.sensors[4] = self.room[self.x, self.y+1]
Je reçois le message d'erreur de la liste des indices doivent être des entiers, pas de tuples'.
L'erreur est à cause de la façon dont vous êtes l'indexation de la salle, pas de capteurs. Montrez-nous comment vous avez défini chambre.
OriginalL'auteur Liban | 2012-02-20
Vous devez vous connecter pour publier un commentaire.
Vous dire
self.room
est une "grille 2d" -- je suppose que c'est une liste de listes. Dans ce cas, vous devez accéder à ses éléments commeau lieu de l'indexation de la liste externe avec la paire
self.x, self.y-1
.OriginalL'auteur Sven Marnach
Le problème vient de votre
self.room
.Car ceci:
Est le même:
Et que c'est votre
tuple
erreur.Il y a deux possibilités:
self.room
est un tableau 2D, ce qui signifie que vous avez probablement dire quelque chose comme:vous voulais tranche
self.room
:Veuillez fournir plus d'informations sur
self.room
.Grâce utilisés , au lieu de : et n'ai pas trouvé cela jusqu'à ce que j'ai lu votre réponse 🙂
OriginalL'auteur Rik Poggi
self.room[self.x, self.y-1]
indexself.room
avec un n-uplet. Si c'est un lambeau de tableau, alors vous devez utiliserself.room[self.x][self.y-1]
à la place.OriginalL'auteur Ignacio Vazquez-Abrams
quel est le type de l'auto.de la salle, je pense que la salle est une liste dans ce cas, vous devez assigner comme ce
ou comme ce
comme ce
OriginalL'auteur pepo
Pourquoi donne-t-il cette erreur? Je ne suis pas la réussite de tous les tuples!
Parce que
__getitem__
, qui traite avec[]
résolution, convertitself.room[1, 2]
à un n-uplet:et les listes ne sont pas faits pour faire face à de tels arguments.
Plus d'exemples au: https://stackoverflow.com/a/33086813/895245
OriginalL'auteur Ciro Santilli 新疆改造中心996ICU六四事件
C'est parce que les indices liste doivent être des entiers, pas autre chose. Dans votre cas, vous essayez d'utiliser des n-uplets.
Votre code est particulièrement étrange, car il n'y a aucun moyen que vous avez jamais créé de
self.room
avec tuple indices.OriginalL'auteur Marcin