Les tableaux ne sont pas une structure de données standard intégrée à Python, mais avec le module array, nous pouvons également utiliser des structures de tableau en Python Ci-dessous, nous expliquerons en détail l'utilisation du module array en Python
Initialisation
L'instanciation du tableau peut fournir un paramètre pour décrire le type de données autorisé, et peut également avoir une séquence de données initiale stockée dans le tableau.
import array import binascii s = 'This is the array.' a = array.array('c', s) print 'As string:', s print 'As array :', a print 'As hex :', binascii.hexlify(a)
>>> ================================ RESTART ================================ >>> As string: This is the array. As array : array('c', 'This is the array.') As hex : 54686973206973207468652061727261792e
La gestion des tableaux
est similaire à d'autres séquences Python et peut être étendue dans le de la même manière et tableau de processus.
import array import pprint a = array.array('i', xrange(3)) print 'Initial :', a a.extend(xrange(3)) print 'Extended:', a print 'slice: :', a[2:5] print 'Itetator:' print list(enumerate(a))
>>> ================================ RESTART ================================ >>> Initial : array('i', [0, 1, 2]) Extended: array('i', [0, 1, 2, 0, 1, 2]) slice: : array('i', [2, 0, 1]) Itetator: [(0, 0), (1, 1), (2, 2), (3, 0), (4, 1), (5, 2)]
Tableaux et fichiers
Méthodes intégrées dédiées pour lire/écrire efficacement des fichiers peut être utilisé Écrit le contenu d'un tableau dans un fichier ou lit un tableau à partir d'un fichier.
import array import binascii import tempfile a = array.array('i', xrange(5)) print 'A1: ',a output = tempfile.NamedTemporaryFile() a.tofile(output.file) output.flush with open(output.name, 'rb') as input: raw_input = input.read() print 'Raw Contents:', binascii.hexlify(raw_data) input.seek(0) a2 = array.array('i') a2.fromfile(input, len(a)) print 'A2: ', a2
Ordre des octets candidats
Si les données du tableau ne En utilisant l'ordre des octets inhérent, ou la nécessité d'échanger l'ordre avant de l'envoyer à un système avec un ordre d'octets différent, il est possible de convertir l'intégralité du tableau en Python sans parcourir chaque élément.
import array import binascii def to_hex(a): chars_per_item = a.itemsize * 2 hex_version = binascii.hexlify(a) num_chunks = len(hex_version) / chars_per_item for i in xrange(num_chunks): start = i * chars_per_item end = start + chars_per_item yield hex_version[start:end] a1 = array.array('i', xrange(5)) a2 = array.array('i', xrange(5)) a2.byteswap() fmt = '%10s %10s %10s %10s' print fmt % ('A1_hex', 'A1', 'A2_hex', 'A2') print fmt % (('-' * 10,) * 4) for value in zip(to_hex(a1), a1, to_hex(a2), a2): print fmt % value
>>> ================================ RESTART ================================ >>> A1_hex A1 A2_hex A2 ---------- ---------- ---------- ---------- 00000000 0 00000000 0 01000000 1 00000001 16777216 02000000 2 00000002 33554432 03000000 3 00000003 50331648 04000000 4 00000004 67108864
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!