L'affectation de Valeurs à un Tableau avec une Boucle for Python
Je suis en train d'affecter les valeurs d'une chaîne à différents indices de tableau
mais j'obtiens une erreur que l'on appelle "liste d'affectation en dehors de la plage"
uuidVal = ""
distVal = ""
uuidArray = []
distArray = []
for i in range(len(returnedList)):
for beacon in returnedList:
uuidVal= uuidVal+beacon[:+2]
uuidArray[i]= uuidVal
distVal= distVal+beacon[-2:]
distArray[i]= distVal
uuidVal=""
disVal=""
J'ai essayé d'utiliser
distArray[i].append(distVal)
au lieu de
distArray[i]= distVal
mais il a donné une erreur que l'on appelle "list index out of range"
À l'aide de
distArray.append(distVal)
de le faire fonctionner avec aucune erreur, mais le résultat était mauvais
car il garder la concaténation de la nouvelle valeur assignée avec les anciennes valeurs dans le prochain indice
Comment il doit fonctionner:
returnedList['52:33:42:40:94:10:19, -60', '22:34:42:24:89:70:89, -90', '87:77:98:54:81:23:71, -81']
à chaque itération, il attribuer le premier char à uuidVal (ex: 52, 22, 87)
et les deux derniers char à distVal (ex: 60, 90, 81)
à la fin uuidArray devrait avoir ces valeurs [52, 22, 87]
et distArray devrait avoir ces valeurs [60, 90, 81]
Remarque: à l'aide de .ajouter concaténer les valeurs, par exemple si elle est utilisée avec distArray comme distArray.append(distVal) les valeurs comme ceci [60, 6090, 609081]
- Nan, ils ont des valeurs.
Vous devez vous connecter pour publier un commentaire.
oui, vous obtiendrez une erreur list index out of range pour:
vous accédez à l'index qui n'est pas encore créé
permet de voir cette démo:
votre code devrait ressembler à ceci:
sortie sera uudiArray: ['52', '22', '87'] et distArray: ['60', '6090', '609081']
Lorsque vous définissez distArray que:
distArray = []
Vous initialisez une liste avec 0, de sorte
distArray[2]
correctement jeter une erreur, puisque vous tentez d'accéder à un élément du passé de la longueur totale de la matrice.Il y a deux façons de traiter ce:
append
. Cela prend la liste et l'étend par l'élément figurant dans l'appel de fonction. C'est préférable pour tous, mais les plus rares occasions, de l'omi.distArray = [0]*num_elements
, oùnum_elements
est le nombre d'éléments que vous voulez avoir. Cela permettra de créer une liste de taillenum_elements
tous égaux à 0.D'autres l'ont déjà expliqué l'erreur, donc je vais laisser mon 2c sur la façon de faire ce travail. Tout d'abord, vous pouvez utiliser pur Python:
Je suis à l'aide d'Aucun type d'objets à allouer le tableau (alors que beaucoup de gens préfèrent des zéros) parce qu'ils ne peuvent pas être interprété comme un entier ou un bool.
Si votre processus va être de RAM-d'œuvre, il est mieux d'utiliser des tableaux numpy. Et il est un moyen très efficace pour créer un tableau vide dans numpy.
Notez que vous devez sélectionner manuellement un type de données.
Ce que vous essayez d'atteindre est fondamentalement simplifié de hachage de la carte/de la table. Si vous n'êtes pas sûr de la valeur maximale, vous pouvez envisager d'écrire votre propre "dynamique" de tableau, qui va augmenter en taille, si elle est appelée hors de ses frontières, au lieu de lever l'erreur.
De cette chose sera s'adapter à vos besoins.