Maison > Article > développement back-end > Introduction détaillée à la méthode de définition de tableau Python
Les exemples de cet article décrivent la méthode de définition de tableau Python. Partagez-le avec tout le monde pour référence, les détails sont les suivants :
Il n'y a pas de structure de données pour les tableaux en Python, mais les listes sont très similaires aux tableaux, tels que :
a=[0,1,2]
A ce moment : a[0]=0, a[1]=1, a[[2]=2, mais cela soulève une question, c'est-à-dire, que se passe-t-il si le tableau a veut être défini de 0 à 999 ? Cela peut être réalisé via a = range(0, 1000). Ou omis comme a = range(1000) Si vous souhaitez définir a avec une longueur de 1000 et que les valeurs initiales sont toutes 0, alors a = [0 pour x dans range(0, 1000)]
Ce qui suit est un tableau bidimensionnel Définition :
Définition directe :
a=[[1,1],[1,1]]
Définit ici un deux 2*2 tableau dimensionnel avec une valeur initiale de 0 .
Définition indirecte :
a=[[0 for x in range(10)] for y in range(10)]
Ceci définit un tableau bidimensionnel 10*10 avec une valeur initiale de 0.
Il existe également une méthode plus simple de tableau bidimensionnel littéral :
b = [[0]*10]*10
Définissez un tableau bidimensionnel 10*10 avec une valeur initiale de 0 .
Comparez avec a=[[0 for x in range(10)] for y in range(10)] : le résultat de print a==b est True.
Mais après avoir utilisé la méthode de définition de b au lieu de a, le programme qui pouvait fonctionner normalement auparavant a également mal tourné. Après une analyse minutieuse, la différence a été trouvée :
a[0][0. ]=1 , seul a[0][0] vaut 1 et les autres valent tous 0.
Quand b[0][0]=1, a[0][0], a[1][0], jusqu'à a[9,0] valent tous 1.
De là, nous obtenons que les 10 petites données unidimensionnelles du grand tableau ont toutes la même référence, c'est-à-dire qu'elles pointent vers la même adresse.
Donc b = [[0]*10]*10 n'est pas conforme à notre tableau bidimensionnel conventionnel.
En même temps, cela a été testé : la définition de c=[0]*10 a le même effet que c=[0 for x in range(10)], sans le même problème de référence ci-dessus . On estime que la définition du tableau c À ce stade, le type valeur est multiplié, alors que dans le b précédent, le type est multiplié, car le tableau unidimensionnel est une référence (empruntant le type valeur et le type référence en C#. , je ne sais pas si c'est approprié).
Pour une introduction plus détaillée aux méthodes de définition de tableaux Python et aux articles connexes, veuillez prêter attention au site Web PHP chinois !