Questo modulo definisce un tipo di oggetto che può rappresentare in modo compatto un array di valori di base: caratteri, numeri interi, numeri in virgola mobile. Gli array sono sequencetypes e si comportano molto come gli elenchi, tranne che il tipo di oggetti memorizzati in essi è vincolato. Il tipo viene specificato al momento della creazione dell’oggetto utilizzando il codice atype, che è un singolo carattere., I seguenti codici di tipo sono definiti:
Note:
-
Può essere di 16 bit o 32 bit a seconda della piattaforma.
Cambiato nella versione 3.9:
array('u')
ora utilizzawchar_t
come tipo C invece di deprecatoPy_UNICODE
. Questa modifica non influisce sul suo comportamento perchéPy_UNICODE
è alias diwchar_t
da Python 3.3.Deprecato dalla versione 3.3, verrà rimosso nella versione 4.0.,
La rappresentazione effettiva dei valori è determinata dall’architettura della macchina(in senso stretto, dall’implementazione C). È possibile accedere alla dimensione effettiva tramite l’attributoitemsize
.
il modulo definisce Il tipo seguente:
classearray.
array
(typecode)¶
Un nuovo array i cui elementi sono limitate da typecode, e initializedfrom opzionale inizializzatore di valore, che deve essere un elenco, abytes-come oggetto, o iterable su elementi di theappropriate tipo.,
Se viene fornito un elenco o una stringa, l’inizializzatore viene passato al nuovo arrayfromlist()
,frombytes()
, ofromunicode()
metodo (vedi sotto)per aggiungere elementi iniziali all’array. In caso contrario, l’inizializzatore iterabile viene passato al metodo extend()
.
Genera un evento di controlloarray.__new__
con argomentitypecode
,initializer
.
array.
typecodes
¶
Una stringa con tutti i codici di tipo disponibili.,
Gli oggetti array supportano le normali operazioni di sequenza di indicizzazione,slicing, concatenazione e moltiplicazione. Quando si utilizza l’assegnazione slice, assignedvalue deve essere un oggetto array con lo stesso codice di tipo; in tutti gli altri casi,TypeError
viene generato. Gli oggetti array implementano anche l’interfaccia buffer e possono essere utilizzati ovunque siano supportati oggetti simili a byte.
Sono supportati anche i seguenti elementi di dati e metodi:
array.
typecode
¶
Il carattere typecode utilizzato per creare l’array.,
array.
itemsize
¶
La lunghezza in byte di un elemento della matrice nella rappresentazione interna.
array.
append
(x)¶
Aggiunge un nuovo elemento con valore x alla fine dell’array.
array.
buffer_info
()¶
Restituisce una tupla(address, length)
fornendo l’indirizzo di memoria corrente e la lunghezza in elementi del buffer utilizzato per contenere il contenuto dell’array. La dimensione del buffer di memoria in byte può essere calcolata come array.buffer_info() *array.itemsize
., Questo è occasionalmente utile quando si lavora con interfacce di I/O di basso livello (eerentemente non sicure) che richiedono indirizzi di memoria, come alcune operazioniioctl()
. I numeri restituiti sono validi finché arrayexists e non vengono applicate operazioni di modifica della lunghezza.
Nota
Quando si utilizzano oggetti array da codice scritto in C o C++ (l’unico modo per utilizzare efficacemente queste informazioni), ha più senso utilizzare l’interfaccia bufferinterface supportata dagli oggetti array. Questo metodo viene mantenuto per backwardcompatibility e dovrebbe essere evitato nel nuovo codice., L’interfaccia buffer è documentata nel protocollo Buffer.
array.
byteswap
()¶
“Byteswap” tutti gli elementi dell’array. Questo è supportato solo per i valori che sono 1, 2, 4, o 8 byte di dimensione; per altri tipi di valori, RuntimeError
israised. È utile quando si leggono i dati da un file scritto su una macchina con un ordine di byte diverso.
array.
count
(x)¶
Restituisce il numero di occorrenze di x nell’array.,
array.
extend
(iterabile)¶
Aggiunge elementi da iterabile alla fine dell’array. Se iterable è anotherarray, deve avere esattamente lo stesso codice di tipo; in caso contrario, TypeError
verrà generato. Se iterable non è un array, deve essere iterabile e i suoi elementideve essere il tipo giusto da aggiungere all’array.
array.
frombytes
(s)¶
Aggiunge elementi dalla stringa, interpretando la stringa come una matrice di valori di macchina (come se fosse stata letta da un file usando il metodofromfile()
).,
Novità nella versione 3.2: fromstring()
viene rinominato in frombytes()
per chiarezza.
array.
fromfile
(f, n)¶
Leggere n elementi (come valori macchina) dall’oggetto file f e appenderli alla fine dell’array. Se sono disponibili meno di n elementi,EOFError
viene generato, ma gli elementi disponibili vengono ancora inseriti nell’array. f deve essere un vero oggetto file incorporato; somethingelse con un metodoread()
non funzionerà.,
array.
fromlist
(elenco)¶
Aggiungi elementi dall’elenco. Questo è equivalente a for x in list:a.append(x)
tranne che se c’è un errore di tipo, l’array è invariato.
array.
fromunicode
(s)¶
Estende questo array con i dati della stringa unicode specificata. L’array deve essere un tipo'u'
array; altrimenti viene generato unValueError
. Usa array.frombytes(unicodestring.encode(enc))
per aggiungere dati Unicode ad anarray di qualche altro tipo.,
array.
index
(x)¶
Restituisce il più piccolo i tale che i è l’indice della prima occorrenza dix nell’array.
array.
insert
(i, x)¶
Inserire un nuovo elemento con valore x nell’array prima della posizione i. I valori negativi vengono trattati come relativi alla fine dell’array.
array.
pop
()¶
Rimuove l’elemento con l’indice i dall’array e lo restituisce., Il valore predefinito di optionalargument è -1
, in modo che per impostazione predefinita l’ultimo elemento venga rimosso e restituito.
array.
remove
(x)¶
Rimuovi la prima occorrenza di x dall’array.
array.
reverse
()¶
Invertire l’ordine degli elementi nell’array.
array.
tobytes
()¶
Converte l’array in un array di valori macchina e restituisce il bytesrepresentation (la stessa sequenza di byte che verrebbe scritta in un file dal tofile()
metodo.,)
Nuovo nella versione 3.2: tostring()
viene rinominato in tobytes()
per chiarezza.
array.
tofile
(f)¶
Scrivi tutti gli elementi (come valori macchina) nell’oggetto file f.
array.
tolist
()¶
Converti l’array in un elenco ordinario con gli stessi elementi.
array.
tounicode
()¶
Converte l’array in una stringa unicode. L’array deve essere di tipo'u'
array;altrimenti viene generato unValueError
., Usaarray.tobytes().decode(enc)
per ottenere una stringa unicode da un array di qualche altro tipo.
Quando un oggetto array viene stampato o convertito in una stringa, viene rappresentato comearray(typecode, initializer)
. L’inizializzatore viene omesso se l’array è vuoto, altrimenti è una stringa se il typecode è 'u'
, altrimenti è un elenco di numeri. È garantito che la stringa possa essere convertita in anarray con lo stesso tipo e valore utilizzando eval()
, purché la classearray
sia stata importata utilizzando from array import array
.,Esempi:
array('l')array('u', 'hello \u2641')array('l', )array('d', )
Vedere anche
Modulo struct
Imballaggio e disimballaggio di dati binari eterogenei.
Moduloxdrlib
Imballaggio e disimballaggio dei dati XDR (External Data Representation) utilizzati nei sistemi di chiamata di procedura someremote.
La documentazione numerica di Python
L’estensione numerica di Python (NumPy) definisce un altro tipo di array; seehttp:// www.numpy.org / per ulteriori informazioni su Python numerico.