Dans ce didacticiel, vous découvrirez le module de tableau Python, la différence entre les tableaux et les listes, et comment et quand les utiliser à l'aide d'exemples.
Remarque: Lorsque les gens disent des tableaux en Python, le plus souvent, ils parlent de listes Python . Si tel est le cas, visitez le didacticiel sur la liste Python.
Dans ce tutoriel, nous nous concentrerons sur un module nommé array
. Le array
module nous permet de stocker une collection de valeurs numériques.
Création de tableaux Python
Pour créer un tableau de valeurs numériques, nous devons importer le array
module. Par exemple:
import array as arr a = arr.array('d', (1.1, 3.5, 4.5)) print(a)
Production
tableau ('d', (1.1, 3.5, 4.5))
Ici, nous avons créé un tableau de float
type. La lettre d
est un code de type. Cela détermine le type de tableau lors de la création.
Les codes de type couramment utilisés sont répertoriés comme suit:
Code | Type C | Type de Python | Octets minimum |
---|---|---|---|
b | char signé | int | 1 |
B | caractère non signé | int | 1 |
u | Py_UNICODE | Unicode | 2 |
h | signé court | int | 2 |
H | court non signé | int | 2 |
i | signé int | int | 2 |
I | non signé | int | 2 |
l | signé long | int | 4 |
L | non signé longtemps | int | 4 |
f | flotte | flotte | 4 |
d | double | flotte | 8 |
Nous ne discuterons pas des différents types C dans cet article. Nous utiliserons deux codes de type dans tout cet article: i
pour les entiers et d
pour les flottants.
Remarque : Le u
code de type des caractères Unicode est obsolète depuis la version 3.3. Évitez d'utiliser autant que possible.
Accès aux éléments de tableau Python
Nous utilisons des indices pour accéder aux éléments d'un tableau:
import array as arr a = arr.array('i', (2, 4, 6, 8)) print("First element:", a(0)) print("Second element:", a(1)) print("Last element:", a(-1))
Production
Premier élément: 2 Deuxième élément: 4 Dernier élément: 8
Remarque : L'index commence à 0 (et non à 1) comme pour les listes.
Trancher des tableaux Python
Nous pouvons accéder à une gamme d'éléments dans un tableau en utilisant l'opérateur de découpage :
.
import array as arr numbers_list = (2, 5, 62, 5, 42, 52, 48, 5) numbers_array = arr.array('i', numbers_list) print(numbers_array(2:5)) # 3rd to 5th print(numbers_array(:-5)) # beginning to 4th print(numbers_array(5:)) # 6th to end print(numbers_array(:)) # beginning to end
Production
tableau ('i', (62, 5, 42)) tableau ('i', (2, 5, 62)) tableau ('i', (52, 48, 5)) tableau ('i', (2 , 5, 62, 5, 42, 52, 48, 5))
Modification et ajout d'éléments
Les tableaux sont mutables; leurs éléments peuvent être modifiés de la même manière que les listes.
import array as arr numbers = arr.array('i', (1, 2, 3, 5, 7, 10)) # changing first element numbers(0) = 0 print(numbers) # Output: array('i', (0, 2, 3, 5, 7, 10)) # changing 3rd to 5th element numbers(2:5) = arr.array('i', (4, 6, 8)) print(numbers) # Output: array('i', (0, 2, 4, 6, 8, 10))
Production
tableau ('i', (0, 2, 3, 5, 7, 10)) tableau ('i', (0, 2, 4, 6, 8, 10))
Nous pouvons ajouter un élément au tableau à l'aide de la append()
méthode, ou ajouter plusieurs éléments à l'aide de la extend()
méthode.
import array as arr numbers = arr.array('i', (1, 2, 3)) numbers.append(4) print(numbers) # Output: array('i', (1, 2, 3, 4)) # extend() appends iterable to the end of the array numbers.extend((5, 6, 7)) print(numbers) # Output: array('i', (1, 2, 3, 4, 5, 6, 7))
Production
array ('i', (1, 2, 3, 4)) array ('i', (1, 2, 3, 4, 5, 6, 7))
Nous pouvons également concaténer deux tableaux à l'aide de l' +
opérateur.
import array as arr odd = arr.array('i', (1, 3, 5)) even = arr.array('i', (2, 4, 6)) numbers = arr.array('i') # creating empty array of integer numbers = odd + even print(numbers)
Production
tableau ('i', (1, 3, 5, 2, 4, 6))
Suppression d'éléments de tableau Python
Nous pouvons supprimer un ou plusieurs éléments d'un tableau en utilisant l'instruction del de Python.
import array as arr number = arr.array('i', (1, 2, 3, 3, 4)) del number(2) # removing third element print(number) # Output: array('i', (1, 2, 3, 4)) del number # deleting entire array print(number) # Error: array is not defined
Production
array ('i', (1, 2, 3, 4)) Traceback (dernier appel en dernier): Fichier "", ligne 9, en impression (numéro) # Erreur: le tableau n'est pas défini NameError: le nom 'numéro' est non défini
Nous pouvons utiliser la remove()
méthode pour supprimer l'élément donné et la pop()
méthode pour supprimer un élément à l'index donné.
import array as arr numbers = arr.array('i', (10, 11, 12, 12, 13)) numbers.remove(12) print(numbers) # Output: array('i', (10, 11, 12, 13)) print(numbers.pop(2)) # Output: 12 print(numbers) # Output: array('i', (10, 11, 13))
Production
tableau ('i', (10, 11, 12, 13)) 12 tableau ('i', (10, 11, 13))
Consultez cette page pour en savoir plus sur les méthodes de tableau et de tableau Python.
Listes Python et tableaux
En Python, nous pouvons traiter les listes comme des tableaux. Cependant, nous ne pouvons pas contraindre le type d'éléments stockés dans une liste. Par exemple:
# elements of different types a = (1, 3.5, "Hello")
Si vous créez des tableaux à l'aide du array
module, tous les éléments du tableau doivent être du même type numérique.
import array as arr # Error a = arr.array('d', (1, 3.5, "Hello"))
Production
Traceback (most recent call last): File "", line 3, in a = arr.array('d', (1, 3.5, "Hello")) TypeError: must be real number, not str
When to use arrays?
Lists are much more flexible than arrays. They can store elements of different data types including strings. And, if you need to do mathematical computation on arrays and matrices, you are much better off using something like NumPy.
So, what are the uses of arrays created from the Python array module?
The array.array
type is just a thin wrapper on C arrays which provides space-efficient storage of basic C-style data types. If you need to allocate an array that you know will not change, then arrays can be faster and use less memory than lists.
À moins que vous n'ayez pas vraiment besoin de tableaux (un module de tableau peut être nécessaire pour s'interfacer avec le code C), l'utilisation du module de tableau n'est pas recommandée.