Tutoriel de array.array ( )
DESCRIPTION.
Créer un objet séquence, ou objet collection, dont tous les éléments sont du même type précisé.
SYNTAXE.
DIM_Tableau = array.array ( type , iterable )
DIM_Tableau = ⇨ désignation de la nouvelle instance de array.array ( ) [ optionnel ]
array.array ( ) ⇨ création d'une instance de array.array ( ) [ OBLIGATOIRE ]
type ⇨ type des données du tableau [ OBLIGATOIRE ]
iterable ⇨ liste de valeurs à insérer dans le tableau [ optionnel ]
PRESENTATION DU MODULE ARRAY.
Le module array permet de créer des objets séquence, ou objets collection, muables dont tous les éléments sont de même type.
array est un module de la bibliothèque standard de Python 3. Il est donc toujours disponible.
D'une façon générale, les objets collections créés avec les classes du module array adoptent le comportement des objets list ( ) classiques. Une bonne connaissance des possibilités des list ( ) doivent être la base de l'utilisation des tableaux de valeurs semblables. On pourra donc considérer un objet array comme un objet list ( ) spécialisé dans un type unique de données. En effet les objets créés avec la classe array.array ( ) acceptent les opérations classiques des objets collections, tel que : indiçage, découpage, concaténation et multiplication. Le tranchage d'un tableau à valeurs semblables retourne un tableau de même type que le tableau parent. Les objets de tableau implémentent également l'interface tampon, et peuvent être utilisés partout où bytes-like objects sont supportés.
Les objets-séquences créés avec la la classe array ( ) offrent donc la possibilité d'obtenir des listes de valeurs élémentaires, ou tableaux, plus compactes, et donc d'un traitement plus efficace. En contre partie, un tel tableau ne peut contenir qu'un seul type élémentaire de donné.
Plusieurs méthodes du module array ont le même nom que celles de la classe list ( ). Il y a donc un risque de substitution de méthodes. Il est donc fortement conseillé l'emploi de import array au lieu de from array import *.
Les objets permanents de type array.array ( ) sont identifiés dans le site par : DIM_.
Voir les conventions sur les variables utilisées dans ce site ...
REMARQUES.
type ⇨ type des est un str ( ) d'un seul caractère indiquant le type de données qui sera accueillies, acceptées, comme élément dans le tableau. l'appel array.typecodes permet de connaitre la liste des types actuellement valide pour les tableaux de valeurs identiques. type peut prendre l'une des valeurs suivantes :
- "b", signed char, pour des int ( ) compris entre - 128 et 127, les données seront codées sur 1 octet ;
- "B", unsigned char, pour des int ( ) compris entre 0 et 255, les données seront codées sur 1 octet ;
- "u", wchar_t, pour des str ( ) de caractères unicode, les données seront codées sur 2 ou 4 octets ;
- "h", signed short, pour des int ( ) compris entre − 32 768 et 32 767, les données seront codées sur 2 octets ;
- "H", unsigned short, pour des int ( ) compris entre 0 et 65535, les données seront codées sur 2 octets ;
- "i", signed int, pour des int ( ) compris entre − 32 768 et 32 767, les données seront codées sur 2 octets ;
- "I", unsigned int, pour des int ( ) compris entre 0 et 65535, les données seront codées sur 2 octets ;
- "l", signed long, pour des int ( ) compris entre − 2 147 483 648 et 2 147 483 647, les données seront codées sur 4 octets ;
- "L", unsigned long, pour des int ( ) compris entre 0 et 4 294 967 295, les données seront codées sur 4 octets ;
- "q", signed long long, pour des int ( ) compris entre -9 x 1018 et 9 x 1018, les données seront codées sur 8 octets ;
- "Q", unsigned long long, pour des int ( ) compris entre 0 et 18 x 1018, les données seront codées sur 8 octets ;
- "f", float, pour des float ( ) compris entre ±1,5 x 10−45 et ±3,4 x 1038, les données seront codées sur 4 octets ;
- "d", double, pour des float ( ) compris entre ±5,0 × 10−324 et ±1,7 × 10308, les données seront codées sur 8 octets ;
A noter que le type "C", pour des str ( ) de caractères unicode a été remplacé par le type "u" depuis Python 3.9, puisque déprécié de la version 3.3.
La représentation réelle des données est définie par l'environnement de l'utilisateur, et plus précisément par ses modalités d"interprétation de implémentation C. Il est conseiller d'utiliser l'attribut itemsize du tableau pour connaitre, et confirmer, le nombre d'octets réellement occupés par chacun de ses éléments.
L'ajout d'élément ne correspondant pas à type du tableau lèvera une exception. On pourra utiliser la valeur retournée par l'attribut typecode du tableau, qui donne le type des éléments du tableau, pour valider ou non l'ajout d'un nouvel élément.
UTILISATION D'UN TABLEAU DE TYPE SEMBLABLE.
Importer le module array.
import array
Consulter la liste des types disponibles.
print ( array.typecodes ) retourne bBuhHiIlLqQfd
Créer un tableau.
DIM_Tableau = array.array ( "I" , [ 12 , 432 , 7654 , 246 ] )
Crée un tableau composé uniquement de nombres entiers longs, et y ajoute les 4 éléments indiqués.
DIM_Notes = array.array ( "I" , [ 0 ] * 7 )
Crée un tableau composé d'un nombre connu d'éléments de même valeur.
DIM_Quinte = array.array ( "I" , range ( 0 , 101 , 5 ) )
On peut utiliser une méthode générant un itérable (ex. range ( )) pour créer une certaine suite d'éléments.
DIM_Carrés = array.array ( "I" , [ kchiffre ** 2 for kchiffre in range ( 10 ) ] )
On peut aussi utiliser la technique dite "compréhension des listes" pour initialiser un tableau avec certaines spécificités.
Vérifier le type des éléments du tableau.
print ( DIM_Tableau.typecode ) retourne I.
Chacun des éléments du tableau DIM_Tableau doivent être du type I, c'est-à-dire des int ( ) compris entre 0 et 65535.
Vérifier la taille occupée par chacun des éléments du tableau.
print ( DIM_Tableau.itemsize ) retourne 4.
Chacun des éléments du tableau DIM_Tableau occupent 4 octets en mémoire.
Ajouter un seul élément en fin au tableau.
DIM_Tableau.append ( 10375 )
Ajoute un élément de type valide à la suite des éléments déjà présents dans le tableau.
Ajouter un élément d'un type différent.
DIM_Tableau.append ( "b" ) retourne an integer is required (got type str).
seul des éléments du type définit lors de la création du tableau sont acceptés.
Ajouter des éléments en fin au tableau.
DIM_Tableau.extend ( [ 97531 , 2 , 12469 , 8421 , 2 , 34 ] )
Ajoute les 6 éléments indiqués à la suite des éléments déjà présents dans le tableau.
Ajouter un élément à une position précise au tableau.
DIM_Tableau.insert ( 6 , 223 )
Ajoute un élément (223) à l'index 6 dans le tableau, et décale les autres éléments.
Supprimer un élément du tableau.
Valeur = DIM_Tableau.pop ( 4 )
print ( Valeur ) retourne 10375
Affecte Valeur avec la valeur de l'élément du tableau DIM_Tableau à l'index 4, supprime cette élément, et décale les autres éléments.
Afficher ou utiliser un élément du tableau.
print ( DIM_Tableau [ 3 ] ) retourne : 246
Afficher le tableau.
print ( DIM_Tableau ) retourne array('I', [12, 432, 7654, 246, 97531, 223, 2, 12469, 8421, 2, 34])
Contrairement aux list ( ), le type de l'objet, array ( ), est rappelé ainsi que la nature des éléments du tableau, 'I', puis seulement est donné la suite des items du tableau entre crochet.
print ( type ( DIM_Tableau ) ) retourne <class 'array.array'>
La nature des éléments du tableau n'est pas retournée.
for kelement in DIM_Tableau : print ( kelement , end = " " ) retourne 12 432 7654 246 97531 223 2 12469 8421 2 34
Quand un tableau de valeurs semblables est itéré, dans une boucle for par exemple, seuls les éléments sont parcourus.
Les tableaux de valeurs semblables tant très proches des list ( ), ils peuvent être utilisés comme itérables par de nombreuses méthodes de Python;
for kindex , kelement in enumerate ( DIM_Tableau ) : print ( kindex , kelement )
retourne :
0 12
1 432
2 7654
3 246
4 97531
5 223
6 2
7 12469
8 8421
9 2
10 34
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la LOGITHEQUE de MON PYTHON PAS A PAS
vous trouvez des suggestions de projets simples et classiques pour
ooo
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
ooo
la programmation récréative avec le langage PYTHON 3
avec un exemple de résolution à télécharger pour vous inspirer.