Stockage des données

Disons que vous avez développé un jeu informatique appelé "User Hostile" dans lequel les joueurs s'affrontent contre une interface informatique complexe et peu conviviale. Vous devez maintenant écrire un programme qui suit les ventes mensuelles de ce jeu sur une période de cinq ans. Ou disons que vous devez faire l'inventaire des cartes à collectionner Hacker Hero.
Très bientôt, vous arriverez à la conclusion que vous avez besoin de plus que de simples types de données de base pour stocker et traiter les informations.
 

Listes (tableaux)

Afin de faciliter le travail avec une grande quantité de données, un groupe de cellules reçoit un nom commun. Un tel groupe de cellules est appelé matrice.
 
Array – il s'agit d'un groupe de cellules mémoire de même type, situées côte à côte et ayant un nom commun. Chaque cellule du groupe a un numéro unique.

Lorsque vous travaillez avec des tableaux, vous devez apprendre à résoudre trois tâches :
X allouer de la mémoire de la taille requise pour le tableau ;
X écrire des données dans la cellule souhaitée ;
X lire les données d'une cellule.

 

Tableaux en Python

Il n'y a pas de tels tableaux en Python. Au lieu de cela, les listes sont utilisées pour stocker un groupe d'objets du même type (mais pas seulement du même type) - des objets de type list. La différence entre les listes et les tableaux est qu'une liste est une structure dynamique dont la taille peut être modifiée pendant l'exécution du programme (suppression, ajout d'éléments) sans penser aux opérations de gestion de la mémoire (ceci est fait par le compilateur).
À l'avenir, lors de l'analyse du travail avec des listes, nous utiliserons le mot "tableau", car le plus souvent, les listes sont utilisées précisément dans le rôle d'un tableau (elles stockent des données du même type).
 
Créer un tableau
Lorsqu'un tableau est créé, de l'espace est alloué en mémoire (un certain nombre de cellules). 1) Les tableaux peuvent être créés en énumérant simplement des éléments : A = [1, 4, 7, 12, 5] impression(type(A)) Le programme affichera
<classe 'liste'>
Autrement dit, un tableau est un objet de type list (traduit de l'anglais list).

2) Les tableaux peuvent être composés de données de n'importe quel type - entiers ou nombres réels, chaînes de caractères  A = ["Vasya", "Petya", "Fedya"]

Quelques façons de travailler avec des tableaux
3) Les tableaux peuvent être "ajoutés". A = [1, 5] + [25, 7]
4) L'addition de tableaux identiques peut être remplacée par la multiplication. Il est donc facile de créer un tableau rempli des mêmes valeurs, comme ceci : A = [0]*10 # a créé un tableau de 10 éléments et l'a rempli de zéros
5) Un tableau "sait" toujours ta taille. La fonction  len() est utilisée pour déterminer la taille d'un tableau. Souvent, la taille du tableau est stockée dans une variable distincte afin que le programme puisse être facilement modifié pour fonctionner avec une taille de tableau différente.

Exemple
N = 10 # stocker la taille du tableau dans la variable N A = [0] * N # créer un tableau de taille N print(len(A)) # affiche la taille du tableau La taille d'un tableau peut être définie à partir du clavier.

Travailler avec des éléments de tableau

Une grande partie de l'utilité des tableaux vient du fait que ses éléments sont accessibles individuellement.
Pour ce faire, utilisez un index pour numéroter les éléments.
 
Indexest une valeur qui pointe vers un élément de tableau spécifique.

Pour faire référence à un élément d'un tableau, vous devez spécifier le nom du tableau suivi de son index entre crochets. Par exemple, vous pouvez écrire la valeur 100 dans l'élément de tableau à l'index 1 comme ceci : A[1] = 100.


Tu dois t'en souvenir !
LA NUMEROTATION DES TABLEAUX EN PYTHON COMMENCE A ZERO !
(Il s'agit d'une condition préalable - vous devez repartir de zéro. Il est particulièrement important de s'en souvenir.)
 
Exemple
x = (A[3] + 5) * A[1] # lire les valeurs de A[3] et A[1] A[0] = x + 6 # écrire une nouvelle valeur dans A[0]
Analysons le programme pour travailler avec des éléments de tableau. je = 1 A = [0] * 5 # créer un tableau de 5 éléments A[0] = 23 # dans chacun des 5 éléments du tableau (indices 0 à 4) A[1] = 12 # écrire une valeur spécifique A[2] = 7 A[3] = 43 A[4] = 51 A[2] = A[i] + 2*A[i-1] + A[2*i] # change la valeur de l'élément d'indice 2 au résultat de l'expression # puisque i=1, puis en substituant la valeur de la variable i dans l'expression on obtient # l'expression suivante A[2] = A[1] + 2*A[0] + A[2] ; imprimer(A[2] + A[4])
À la suite de l'exécution ce programme la valeur de la somme des éléments du tableau d'indice 2 et d'indice 4 égal à 116 apparaîtra à l'écran. Comme vous pouvez le voir dans l'exemple, nous pouvons accéder à n'importe quel élément du tableau . Et calculez également le nombre d'éléments requis à l'aide de diverses formules (par exemple, comme dans le programme A[i-1] ou A[2*i]). Dans ces cas, les indices des éléments seront calculés et dépendront de la valeur de i.

En Python, vous pouvez utiliser des valeurs d'index négatives pour les tableaux et compter à partir de la fin du tableau. Par exemple: A[-1] - le dernier élément du tableau A[-2] - avant-dernier élément etc.

Analysons le programme. N=5 A = [0] * N  x=1 print(A[x - 3])   # accéder à l'élément A[-2] print(A[x - 3 + len(A)]) # accéder à l'élément A[3]                       # c'est le même élément que  A[-2] A[x + 4] = A[x] + A[2 * (x + 1)]  # après avoir remplacé x dans les expressions et les calculs                            # obtenir la ligne suivante A[5] = A[1] + A[4]                           # A[5] aucun élément de ce type n'existe                           # erreur - tableau hors limites Le tableau étant déclaré avec 5 éléments, les éléments seront numérotés de -5 à 4. On voit que le programme de la 6ème ligne fait référence à un élément inexistant : A[5].
Il s'avère que le programme a dépassé les limites du tableau.
 

Dans de tels cas, le programme plante généralement avec une erreur d'exécution.

Itération sur les éléments du tableau

Lorsque vous travaillez avec des tableaux, vous devez généralement travailler avec tous les éléments du tableau à la fois.
 
Itérer sur les éléments : parcourir tous les éléments du tableau et, si nécessaire, effectuer une opération sur chacun d'eux.

Pour cela, on utilise le plus souvent une boucle avec une variable, qui passe de 0 à N-1, où N est le nombre de tableau éléments.
Sous N nous considérerons la taille actuelle du tableau, c'est-à-dire  N = len(A). ... pour i dans la plage (N): # ici on travaille avec A[i] ... Dans la boucle spécifiée, la variable i prendra les valeurs 0, 1, 2, ..., N-1.  Ainsi, à chaque étape de la boucle, on accède à un élément spécifique du tableau avec le numéro i.
Ainsi, il suffit de décrire ce qui doit être fait avec un élément du tableau A[i] et de placer ces actions dans une telle boucle.

Écrivons un programme qui remplit le tableau avec les premiers N nombres naturels, c'est-à-dire qu'à la fin du programme, les éléments du tableau doivent devenir égaux A[0] = 1 A[1] = 2 A[2] = 3 ... A[N - 1] = N Il est facile de voir le modèle : la valeur d'un élément de tableau doit être supérieure de 1 à l'indice de l'élément.

La boucle ressemblera à ceci pour i dans la plage (N): A[je] = je + 1

Générateurs de listes

Le langage Python permet de résoudre de nombreux problèmes de manière concise et fiable. Énumérons les principales possibilités pour remplir un tableau. 1) La création et le remplissage d'un tableau peuvent être écrits comme ceci : A = [i for i in range(N)] # Avec N = 5, tableau A = [0,1,2,3,4] A = [i*i for i in range(N)] # Avec N = 5, tableau A = [0,1,4,9,16] for i in range(N) - boucle sur toutes les valeurs i de 0 à N-1.

Le prochain élément du tableau contiendra la valeur qui précède le mot for, dans le premier cas i, dans le second - i*i.

On obtient le même résultat en utilisant la notation suivante : A = list(range(N)) # avec N = 5, tableau A = [0,1,2,3,4]
2) Vous pouvez écrire dans le tableau non pas toutes les valeurs, mais uniquement celles qui satisfont à une certaine condition.
 
Exemple
Remplir le tableau avec tous les nombres pairs dans la plage 0 à 9. A = [i pour i dans la plage (10) si je % 2 == 0] print(*A) # tableau A = [0,2,4,6,8] Dans ce cas, vous devez comprendre que la longueur du tableau sera inférieure à 10. 

3) Remplir un tableau à partir du clavier avec des éléments situés un par ligne peut se faire de deux manières.
 
N=5 A = [0]*5 pour i dans la plage (N): A[i] = int(input())
A = [int(input()) for i in range(N)] # chaque fois que la boucle se répète, # la chaîne d'entrée est convertie # à un entier (en utilisant int) # et ce nombre est ajouté au tableau


4) Remplir un tableau depuis le clavier avec des éléments qui sont tous situés sur la même ligne est un peu plus compliqué. Vous devez lire la chaîne, la diviser en éléments, puis convertir chaque élément en un entier s = input().split()  A = [int(i) pour i dans s]  ou alors A = list(map(int, input().split())) # fonction intégrée list()   # transforme la séquence   # à la liste modifiable

Sortie de tableau

Vous pouvez également afficher un tableau à l'écran de différentes manières.
 
pour je dans la plage(len(A)): print(A[i], end=" ")
pour x dans A : print(x, end=" ")
impression(*A) # signe * devant le nom # du tableau signifie que # doit être converti # tableau en un ensemble de valeurs individuelles
Méthode standard, utilisée dans de nombreux langages de programmation. Un tel cycle peut être écrit plus court. La valeur de х à chaque étape de la boucle est remplie avec l'élément suivant du tableau. En Python, vous pouvez écrire comme ceci.