Python Array vs. List: differenze e casi d'uso

Pubblicato: 2021-11-03

Python ha preso il sopravvento su altri linguaggi in Data Science negli ultimi anni e le sue strutture dati svolgono un ruolo fondamentale. Python ha un ampio set di strutture dati, tra cui array e list sono le più popolari di cui parleremo oggi.

Gli array e gli elenchi sono due strutture dati importanti in Python che sono simili sotto molti aspetti. Entrambi possono essere utilizzati per archiviare dati e consentirci di scorrere su di essi, tagliarli e persino accedere ai loro elementi utilizzando il metodo di indicizzazione. Allora qual è la differenza tra list e array in Python? Bene, questo è ciò di cui parleremo in questo articolo.

Sommario

Matrici in Python

Un array è una struttura dati contigua che contiene elementi omogenei, cioè gli elementi che appartengono allo stesso tipo di dati.

Le seguenti sono le principali caratteristiche esibite dagli array in Python:

  • La natura contigua dell'array consente di archiviare i dati in posizioni di memoria adiacenti. Ciò semplifica l'esecuzione delle operazioni sugli elementi dell'array.
  • Un array in Python può essere dichiarato in due modi:
    • Utilizzo del modulo array

import array # importazione del modulo 'array'

myArray = array.array('i', [10, 20, 30]) # dichiarazione di array

# array creato: [10, 20, 30]

Nota: Nella dichiarazione di cui sopra, è necessario specificare il codice del formato. Qui, 'i' è un codice di formato che sta per intero.

  • Utilizzando il modulo NumPy

import numpy # importa il modulo 'numpy'

myArray = numpy.array([10, 20, 30]) # dichiarazione di array

# array creato: [10, 20, 30]

  • Gli elementi della matrice sono ordinati . Ogni elemento ha un indice intero associato. Ad esempio, in arr[10, 20, 30], '10', '20' e '30' sono memorizzati rispettivamente negli indici 0, 1 e 2 nella memoria.

Nota: l'indicizzazione dell'array in Python inizia da 0.

  • Un array può contenere solo valori dello stesso tipo, cioè elementi omogenei . Per esempio,

arr[1, 2, 3]

arr['a', 'b', 'c']

Un array in Python viene generalmente utilizzato per memorizzare un elenco di elementi simili. Un caso d'uso reale di un display può essere quello di memorizzare i prezzi delle azioni di un determinato titolo per un intervallo di giorni. Il prezzo di chiusura dell'azione rimane intatto per un'azione e un giorno specifici. Ciò significa che la memorizzazione di tali dettagli in una struttura di dati immutabile come un array ha molto più senso.

In effetti, gli array NumPy vengono generalmente utilizzati per archiviare dati da set di dati di grandi dimensioni nella scienza dei dati e nell'apprendimento automatico. Ogni matrice NumPy corrisponde a una funzionalità in un set di dati.

Elenchi in Python

Un elenco è uno dei quattro contenitori o strutture dati integrati supportati in Python. Uno dei principali vantaggi dell'utilizzo degli elenchi è che un singolo elenco può contenere valori di più tipi di dati.

Le seguenti sono le principali caratteristiche esibite dagli elenchi in Python:

  • Gli elenchi sono più flessibili in termini di archiviazione dei dati. Possono contenere dati eterogenei , cioè elementi di diverso tipo. Per esempio,

[1, 'ciao', ['x', 'y']]

  • Le liste sono anche ordinate e gli elementi memorizzati in una lista sono accessibili usando i loro indici. Gli indici negativi possono essere utilizzati per accedere a un elemento dalla fine dell'elenco. Per esempio.,

miaLista = [20, 40, 'ciao', 'mondo']

# stampa del penultimo elemento

print(myList[-2])

Produzione

  • Gli elenchi possono essere facilmente modificati dopo l'inizializzazione dell'elenco. Per modificare qualsiasi valore, accedi ad esso utilizzando l'indice dell'elemento.

automobili = ['Ford', 'Tesla', 'Jaguar']

auto[2] = 'BMW'

  • Gli elenchi multidimensionali possono anche essere implementati in Python usando il concetto di elenchi annidati. Questi elenchi multidimensionali possono essere utilizzati come array multidimensionali in Python.

mioArr = [[1, 2], [3, 4]]

# creato array 2-d:

# |1, 2|

# |3, 4|

Un caso d'uso reale di un elenco eterogeneo multidimensionale in Python può essere quello di memorizzare un insieme di dettagli di prodotto come tipo di prodotto, categoria, prezzo di costo, prezzo di vendita, ecc. Ciascun elenco in un elenco multidimensionale rappresenta un prodotto. Poiché gli elenchi sono mutevoli, diventa più facile modificare i dettagli del prodotto ogni volta che lo desideriamo.

Se sei un aspirante sviluppatore Python, coprire le differenze di base tra array e list in Python è un aspetto chiave. Quindi, senza ulteriori indugi, passiamo direttamente a una descrizione tabellare su Python Array vs. List.

Conosci la differenza tra Array e List in Python

Python Array vs List : chi è il vincitore?

PARAMETRO

ELENCO VETTORE

Dichiarazione

Gli elenchi non devono essere dichiarati poiché sono integrati in Python.

lista = [ 10 , 20 , 30 ]

È necessario importare un modulo array o una libreria NumPy per dichiarare un array.

mio_arr_1 = array.array( 'i' , [ 10 , 20 , 30 ])

Tipo di dati

Un singolo elenco può contenere valori che appartengono a tipi di dati diversi.

miaLista = [ 40 , 'ciao' , 'm' ]

Tutti gli elementi di un array devono essere dello stesso tipo di dati.

mioArr = arr.array(i, [ 1 , 0 , 9])

Dimensione

L'elenco Python è ridimensionabile poiché, durante l'inizializzazione dell'elenco, Python inizializza alcuni elementi extra. Gli array hanno una dimensione costante che non può essere modificata.

Spazio/

Memoria

Consuma spazio e memoria maggiori per l'aggiunta o la rimozione di elementi.

Memorizza i dati in modo più compatto.

Archivio dati

Preferito per la memorizzazione di una piccola quantità di dati.

Preferito per la memorizzazione di una grande quantità di dati

Operazioni matematiche

Non può essere utilizzato direttamente per operazioni matematiche.

Gli elementi dell'array possono essere facilmente manipolati utilizzando operazioni matematiche avanzate.

Visualizza dati

Gli elementi di un elenco possono essere visualizzati senza loop

mia_Lista = [ 1 , “Dennis” ,[ 'a' , 'b' ]]

stampa(la mia_lista)

Per visualizzare gli elementi di una matrice è necessario un ciclo.

matrice di importazione

mio_Arr = array.array( 'i' , [ 1 , 2 , 3 ])

per io nel mio_Arr:

stampa(io)

Python Array vs List : chi è il vincitore?

Se stai leggendo questa sezione, significa che ora hai abbastanza familiarità con la differenza tra list e array in Python. Tuttavia, dovresti anche essere consapevole di quando usare Array o List nel tuo programma.

Questa sezione discute le varie circostanze in cui è necessario scegliere la struttura di dati più adatta tra queste due.

Tipo di elementi

Se il tipo di dati non è predeterminato, esiste una raccolta di dati appartenenti a più tipi. Ad esempio, per archiviare il record di studenti con entità come name(string) , ID(integer) e marks(float) , un elenco è una scelta preferita.

Se i dati da memorizzare appartengono allo stesso tipo di dati, qui è possibile preferire un array o un elenco . La scelta dipenderà quindi da altri parametri come la dimensione dei dati, le operazioni da eseguire e l'utilizzo.

Consumo di memoria

Il consumo di memoria negli elenchi è maggiore in quanto viene allocato spazio aggiuntivo durante l'inizializzazione dell'elenco. Se la raccolta dei dati è relativamente più piccola, un elenco è una scelta efficiente qui.

Fonte immagine: webcourses@UCF

Gli array sono adatti per archiviare grandi quantità di dati, poiché il consumo di memoria degli array è più efficiente degli elenchi.

Fonte immagine: webcourses@UCF

Operazioni supportate

Se i tuoi dati non richiedono alcuna operazione aritmetica, un elenco può essere una scelta migliore, poiché supporta funzioni integrate migliori per la manipolazione dei dati.

D'altra parte, gli array dovrebbero essere utilizzati quando è necessario eseguire operazioni matematiche. Il modulo NumPy supporta molte operazioni matematiche avanzate, comprese le operazioni trigonometriche e logaritmiche.

Modulo da importare

Un elenco può essere dichiarato senza importare alcun modulo o libreria. Può essere definito proprio come una normale variabile poiché è una struttura dati incorporata in Python.

Tuttavia, l' array non è uno dei contenitori predefiniti di Python. Ci sono due moduli più popolari: array e NumPy . Ogni modulo è dotato di alcune funzioni predefinite per manipolare e gestire i dati archiviati nell'array.

Conclusione

Questo articolo ha trattato tutti gli argomenti necessari per darti una comprensione approfondita della differenza tra array e list in Python. Abbiamo anche discusso i vari casi d'uso in cui è adatto un elenco o un array.

Se vuoi iniziare il tuo viaggio in Data Science, iscriviti a upGrad's Data Science corso oggi. Dai un'occhiata alla vasta collezione di corsi su upGrad per dare il via alla tua carriera.

Quando utilizzare un array su un elenco in Python?

L'array Python è preferito a un elenco in vari scenari:

1. Poiché l'array in Python è più compatto e consuma meno memoria di un elenco, è preferibile utilizzare un array quando è necessario archiviare una grande quantità di dati.
2. Non è necessario utilizzare un elenco per memorizzare i dati quando tutti gli elementi sono dello stesso tipo di dati e quindi un array sarà più efficiente qui.
3. I dati memorizzati in un array possono essere facilmente manipolati matematicamente mentre questo è abbastanza scomodo con un elenco.

Qual è più veloce tra array e list in Python?

Un array è più veloce di un elenco in Python poiché tutti gli elementi archiviati in un array sono omogenei, ovvero hanno lo stesso tipo di dati mentre un elenco contiene elementi eterogenei.

Inoltre, gli array Python sono implementati in C, il che lo rende molto più veloce degli elenchi integrati in Python stesso.

Quando un elenco è più adatto per archiviare dati in Python?

L'elenco Python ha un grande significato nell'archiviazione dei dati e può essere utilizzato in più casi:

1. Quando si dispone di vari elementi di diversi tipi di dati, è possibile memorizzarli in un elenco e accedere a questi elementi semplicemente facendo riferimento ai loro indici.
2. È anche possibile ridimensionare un elenco. Quindi, un elenco è utile quando non si è certi del numero di elementi.
3. Gli elenchi sono altamente preferibili quando è richiesta la memorizzazione di una piccola quantità di dati poiché le funzioni integrate nell'elenco sono abbastanza convenienti per la manipolazione dei dati.