Maison  >  Article  >  développement back-end  >  Introduction détaillée à la méthode de définition de tableau Python

Introduction détaillée à la méthode de définition de tableau Python

高洛峰
高洛峰original
2017-03-06 14:01:492164parcourir

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 !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn