TypeError: les index de liste doivent être des entiers, pas str Python
list[s]
est une chaîne de caractères. Pourquoi ne pas ce travail?
L'erreur suivante s'affiche:
TypeError: liste des indices doivent être des entiers, pas de str
list = ['abc', 'def']
map_list = []
for s in list:
t = (list[s], 1)
map_list.append(t)
source d'informationauteur kerschi | 2014-12-27
Vous devez vous connecter pour publier un commentaire.
De sortie:
C'est ce que vous voulez exactement.
De sortie:
Lorsque vous parcourez une liste, la variable de boucle reçoit la liste des éléments, et non pas de leurs indices. Ainsi, dans votre exemple
s
est une chaîne de caractères (premièreabc
puisdef
).Il ressemble à ce que vous essayez de faire est essentiellement ceci:
C'est à l'aide d'un Python construction appelée compréhension de liste.
Ne pas utiliser le nom
list
pour une liste. J'ai utilisémylist
ci-dessous.for s in mylist:
affecte des éléments demylist
às
je.es
prend la valeur " abc " dans la première itération et def dans la deuxième itération. Ainsi,s
ne peut pas être utilisé comme un index dansmylist[s]
.Au lieu de cela, il suffit de faire:
il devrait être:
je pense que vous voulez:
enumerate
donner de l'index et de l'élémentRemarque: l'utilisation de la liste comme nom de variable est une mauvaise pratique. ses construit en fonction
for s in list
va produire les éléments de la liste et de ne pas leur index. Doncs
sera'abc'
pour la première boucle, puis'def'
.'abc'
ne pourrait être qu'une clé d'un dict, pas un indice de la liste.Dans la ligne avec
t
de l'extraction de l'élément à l'indice est redondante en python.