Tutorial sul Python - Tipo di dati - array

  1. Dichiarazione di Python Array
  2. Indice Python Array
  3. Indice negativo dell’array
  4. Attraversare un array Python
  5. Aggiornamento Python Array
  6. Diversi modi per modificare un array Python
  7. Cancellare elementi da un array Python
  8. Metodi dell’array

In questa sezione, imparerete come creare e accedere agli elementi di array in Python.

Un array è un insieme di elementi dello stesso tipo di dati. La differenza principale tra un array e una lista è che una lista può avere elementi di diversi tipi di dati.

Nella programmazione Python, per creare un array, è necessario importare il modulo array perché un array non è un tipo di dati fondamentale.

from array import *

Dichiarazione di Python Array

Per dichiarare un array è necessario seguire la sintassi riportata di seguito:

arrayName = array(typecode, [initializers])

Qui, arrayName è il nome dell’array, typecode determina il tipo di dati dell’array e initializers sono i valori dell’array.

Ulteriori informazioni sul parametro typecode verranno fornite più avanti in questa sezione.

Si consideri l’esempio seguente:

a = array('i', [1,2,3,4])

Il nome dell’array è a, typecode è i che specifica che i valori dell’array saranno di tipo di dati interi. Se si prova a memorizzare valori diversi dai numeri interi in questo array, si genererà un errore:

>>> a=array('i', [1,2,3.4,4])
Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    a=array('i', [1,2,3.4,4])
TypeError: integer argument expected, got float

Controlliamo l’esempio di un array che contiene alcuni numeri interi:

>>> from array import *
>>> a = array('i', [1,2,3,4])
>>> for i in a:
	print(i)
1
2
3
4

Parametro typecode

Parametro Significato
b un intero firmato di 1 byte
B un numero intero non firmato di 1 byte
u un carattere Unicode di 2 byte
h un numero intero firmato di 2 byte
H un numero intero non firmato di 2 byte
i un numero intero firmato di 2 byte
I un numero intero non firmato di 2 byte
l un numero intero firmato di 4 byte
L un numero intero non firmato di 4 byte
f un numero a virgola mobile di 4 byte
d un numero a virgola mobile di 8 byte

Indice Python Array

È possibile recuperare un elemento di un array utilizzando l’operatore di indice [].

Recuperare un elemento dell’array usando l’operatore indice

>>> a = array('i', [1,2,3,4])
>>> print("First element of array =", a[0])
First element of array = 1
>>> print("Second element of array =", a[1])
Second element of array = 2

Ottenere l’indice di un dato valore utilizzando il metodo index(x)

Il metodo index(x) restituisce il più piccolo indice della prima occorrenza di x.

>>> a = array('i', [1,2,3,4])
>>> print("1 is found at location:", a.index(1))
1 is found at location: 0
>>> print("4 is found at location:", a.index(4))
4 is found at location: 3

Indice negativo dell’array

Simile ad altri tipi di dati sequenziali Python come strings, lists, tuples, range oggetti, si possono anche usare indici negativi per accedere agli elementi dell’array.

>>> a = array('i', [1,2,3,4])
>>> print("last element of array:",a[-1])
last element of array: 4

Attraversare un array Python

Per prima cosa, trovare la lunghezza dell’array:

Metodo len() dell’array

Il metodo len() restituisce il numero di elementi in un array.

>>> a = array('i', [1,2,3,4])
>>> print("length of a:", len(a))
length of a: 4

Iterare su un array

Si può usare il loop for per iterare attraverso elementi di un array.

>>> a = array('i', [1,2,3,4])
>>> for i in range(len(a)):
	print(a[i])
1
2
3
4

oppure

>>> a = array('i', [1,2,3,4])
>>> for i in a:
	print(i)
1
2
3
4

Aggiornamento Python Array

append()

Si può usare il metodo dell’array append() per aggiungere un elemento alla fine di un array.

>>> a = array('i', [1,2,3,4,5,7,8,9])
>>> a.append(10)
>>> print(a)
array('i', [1, 2, 3, 4, 5, 7, 8, 9, 10])

insert(i, x)

Si potrebbe usare il metodo insert(i, x) per inserire l’elemento x nell’indice dato i.

>>> a = array('i', [1,2,3,4,5,7,8,9])
>>> a.insert(3,44)
>>> print(a)
array('i', [1, 2, 3, 44, 4, 5, 7, 8, 9])

extend(x)

append(x) aggiunge l’elemento x come un unico elemento all’array. Il metodo extend(x) è il metodo giusto per estendere l’array aggiungendo tutti gli elementi nell’oggetto dato x.

>>> a = array('i', [1,2,3,4,5,7,8,9])
>>> a.extend([10,11,12,13,14,15])
>>> print(a)
array('i', [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15])
Attenzione

Se x è un altro array, deve avere esattamente lo stesso codice del tipo di dati, altrimenti, TypeError sarà generato. Se x non è un array Python, deve essere iterabile e i suoi elementi devono avere lo stesso tipo di dati con l’array da estendere.

fromlist()

fromlist() aggiunge elementi da una lista nell’array.

>>> a = array('i', [1,2,3,4,5,7,8,9])
>>> l = [10,11]
>>> a.fromlist(l)
>>> print(a)
array('i', [1, 2, 3, 4, 5, 7, 8, 9, 10, 11])

Diversi modi per modificare un array Python

reverse()

reverse() inverte l’array.

>>> a = array('i', [1,2,3,4,5,7,8,9])
>>> a.reverse()
>>> print(a)
array('i', [9, 8, 7, 5, 4, 3, 2, 1])

Operatore +

Due array possono essere concatenati utilizzando l’operatore +:

>>> a = array('i', [1,2,3,4,5,7,8,9])
>>> b = array('i', [10,11])
>>> print(a + b)
array('i', [1, 2, 3, 4, 5, 7, 8, 9, 10, 11])

* Operatore

L’operatore * ripete gli elementi dell’array un numero specifico di volte.

>>> a = array('i', [1,2,3,4,5,7,8,9])
>>> a = a * 2
>>> print(a)
array('i', [1, 2, 3, 4, 5, 7, 8, 9, 1, 2, 3, 4, 5, 7, 8, 9])

Qui gli elementi vengono ripetuti due volte.

Cancellare elementi da un array Python

L’istruzione del elimina uno o più elementi da un array. Si può anche usare del per cancellare l’intero array:

>>> a = array('i', [1,2,3,4,5,7,8,9])
>>> del a[3]
>>> print(a)
array('i', [1, 2, 3, 5, 7, 8, 9])
>>> del a			#entire array is deleted

remove(x)

remove() rimuove la prima occorrenza di x da un array:

>>> a = array('i', [1,2,3,4,5,7,8,9,3])
>>> a.remove(3)
>>> print(a)
array('i', [1, 2, 4, 5, 7, 8, 9, 3])

pop()

pop() rimuoverà e restituirà l’ultimo elemento dell’array.

>>> a = array('i', [1,2,3,4,5,7,8,9])
>>> a.pop()
9
>>> print(a)
array('i', [1, 2, 3, 4, 5, 7, 8])

Metodi dell’array

La seguente tabella descrive i metodi di un array,:

Metodi Descrizione
append() aggiungere un elemento alla fine dell’array
extend() aggiungere più di un elemento ad un array. Funziona aggiungendo elementi di un array ad un altro array (in cui si vogliono aggiungere elementi).
insert() aggiungere un elemento nel punto desiderato.
remove() rimuovere un particolare elemento dall’array.
pop() rimuovere un elemento da una data posizione e restituire l’elemento.
clear() rimuovere tutti gli elementi dalla matrice.
index() restituire l’indice del primo elemento abbinato nella matrice.
count() restituire il numero totale di articoli passati
sort() ordinare gli elementi di un array in ordine crescente.
reverse() invertire l’ordine degli elementi di un array.
copy() restituire una copia di un array già esistente.