Tout ce que j'essaie de faire est de remplir un tableau avec des chiffres dans l'ordre. Donc, Array [0] [0] = 0, tableau [0] [1] = 1, etc. Pourquoi ne fonctionne-t-il pas? Je ne peux pas le comprendre.
def populateArray(ar): count = 0 i=0 j=0 while (i<len(ar)): while (j<len(ar[i])): ar[i][j] = count count = count + 1 j=j+1 j=0 i=i+1 return ar numColumns = input('how many columns?') numRows = input('how many rows?') arr = [[0]*int(numColumns)]*int(numRows) arr=populateArray(arr) print(arr)
4 Réponses :
Vous pouvez faire ceci:
numColumns = input('how many columns?') numRows = input('how many rows?') arr = [[i+j for i in range(int(numRows))] for j in range(int(numColumns))] arr=populateArray(arr) print(arr)
Lorsque vous initiez votre variable CODE> ARR CODE>, vous multipliez une liste de listes avec un numéro, il en résulte un "désordre" car ce que vous le faites réellement, c'est de multiplier la référence du premier Liste (dans votre liste de listes), vous disposez donc de votre Art code> une seule liste et une bande de référence à cette liste, pour résoudre ce problème, vous pouvez faire:
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]]
Merci pour l'info, c'est exactement ce que j'avais besoin de savoir. Donc, ce n'était pas la boucle tandis que c'est le problème, à savoir comment j'ai initialisé mon tableau (ARR variable). Très appréciée.
Lorsque vous utilisez cette syntaxe pour créer une matrice multidimensionnelle La référence du même élément est créée plusieurs fois, donc si vous attribuez une valeur à l'une d'elles, alors vous changez essentiellement tout les éléments parce qu'ils se réfèrent tous aux mêmes données.
Pour ex: p> sortie p> I n'a changé qu'un élément et c'est le résultat.
Vous devez utiliser: p> sortie: p>
Vous pouvez également utiliser NUMPY pour créer la structure, suivi de Numpy.tolist () pour la convertir en une liste Python
import numpy as np numColumns = int(input('how many columns?')) numRows = int(input('how many rows?') ) arr = np.arange(numRows*numColumns).reshape(numRows, numColumns).tolist() print(arr)
Comment i> est-ce "ne fonctionne pas"? C'est une information importante et devrait faire partie de votre question.