In Python, le liste sono raccolte ordinate. Sono una componente importante del codice del programma. Gli elenchi si riferiscono agli oggetti linguaggio incorporati. Con il loro aiuto, è possibile gestire in modo rapido ed efficiente una grande quantità di informazioni e strutture di dati di qualsiasi complessità.
Le liste sono flessibili e mutevoli. tipo di dati Possono essere di lunghezza arbitraria e contenere illimitate quantità di informazioni. Come elementi della sequenza è permesso usare stringhe, numeri semplici e reali, dizionari. Ogni variabile di lista in Python è separatamente trattabile, cancellata o sostituita.
Gli elenchi hanno un insieme specifico di proprietà che li distingue da altri tipi di dati:
Gli elenchi possono essere confusi con strutture dati correlate. Ma in realtà sono contenitori di riferimenti agli oggetti e non alle loro copie. Sono come una rubrica. Tutti gli elementi della lista indicano la posizione dell'oggetto desiderato. In questo, gli elenchi Python sono simili agli array C, ma sono implementati nell'interprete.
Formalmente, ci sono tre categorie di dati nella lingua. Questi sono i numeri, le mappe e le sequenze a cui appartiene il tipo di elenco. Per ogni gruppo esiste un insieme comune di operazioni. Ad esempio, addizione, sottrazione e moltiplicazione per oggetti numerici o accesso su una chiave ai dizionari.
Le sequenze hanno anche le loro operazioni caratteristiche:
Le liste hanno una gamma più ampia di funzionalità rispetto alle stringhe in Python. È un potente strumento di sviluppo con una serie di funzioni specifiche applicabili solo per la lista dei tipi.
Che aspetto hanno i metodi di lista nella pratica:
Quando si esegue la concatenazione su ciascun lato del segno "+", è necessario trovare sequenze dello stesso tipo, altrimenti l'interprete visualizzerà un messaggio di errore:
Per aggiungere una stringa e un elenco in Python, è necessario eseguire una conversione preliminare per il tipo str:
Quando si crea un elenco in Python, è necessario attenersi a regole di sintassi rigorose. Ogni oggetto deve essere racchiuso tra parentesi quadre e gli elementi sono separati da virgole.
L'iterazione è un processo di ripetizione. Nel contesto delle liste, questo è un avanzamento alternativo attraverso gli elementi dell'oggetto che viene iterato. Ad esempio:
Se l'iterazione è solo un attraversamento di ciascun elemento, la generazione è il processo di creazione di un nuovo oggetto di tipo elenco. In Python, i generatori di elenchi sono simili a loop, ma funzionano in modo più veloce e sintatticamente molto più semplice:
In entrambi gli esempi, il risultato è identico. Ma usando il generatore, il codice è molto più breve e più facile. Questo approccio è pienamente coerente con The Zen of Python. Questo è lo Zen, o il codice della lingua, in cui uno dei punti dice: "Semplice è meglio che complicato".
Queste due operazioni sono simili nell'aspetto e consentono di gestire singoli elementi di elenco in Python. Ma c'è una differenza significativa. Come risultato dell'indicizzazione, viene restituita una parte separata della sequenza. E l'estrazione della sezione crea un nuovo oggetto lista:
I costrutti del linguaggio consentono non solo di estrarre, ma anche di modificare singoli elementi, assegnandoli a nuovi valori. Di conseguenza, viene restituita la stessa lista, solo con una variabile diversa. Questa operazione è simile all'assegnazione su un indice nel linguaggio C. L'interprete sostituisce il vecchio riferimento all'oggetto specificato nell'offset con uno nuovo:
Questa è un'operazione piuttosto complicata, che si verifica in più fasi. Innanzitutto, l'interprete elimina tutti gli elementi a sinistra dell'operatore. In questo esempio, questo è "uno" e "otto". Quindi tutti gli oggetti a destra dell'operatore vengono inseriti nell'elenco, a partire dal bordo sinistro.
Il processo descritto fornisce un lavoro flessibile con i tagli. Il numero di elementi da rimuovere e aggiungere può variare. L'operazione è adatta per la rimozione e la sostituzione di oggetti, nonché per gli elenchi di espansione. Questo è un modo abbastanza potente per gestire il codice. Ma i programmatori lo usano raramente nella pratica, preferendo inserimenti, pop e istruzioni più semplici.
La maggior parte dei metodi o delle funzioni hanno lo scopo di cambiare direttamente l'oggetto. Il più comune è .append (). Aggiunge elementi alla fine dell'elenco:
Un altro metodo altrettanto popolare è chiamato sort (). Destinato agli elenchi di ordinamento in Python. Il metodo riordina gli elementi utilizzando operatori di confronto standard. Può anche essere usato per attività più complesse usando argomenti con nome:
Nell'esempio è stata utilizzata la sintassi "nome = valore" per passare le impostazioni. L'argomento chiave ti consente di impostare i tuoi parametri per il confronto. In questo caso, questi sono elementi con una piccola lettera. Un rovescio significa "il contrario", cioè in ordine decrescente, non crescente.
Quando si lavora con questi metodi, è necessario considerare le seguenti funzionalità: .sort () e .append () cambiano la lista, ma non la restituiscono. La costruzione my_list = List.sort () non ha significato o risultato. Questo è il motivo per cui nelle ultime versioni del linguaggio, gli sviluppatori hanno introdotto la funzione sorted (), che prende una lista come argomento:
Python fornisce metodi aggiuntivi per l'esecuzione dell'elaborazione di elenchi specializzati. Ad esempio, il contrario è usato per cambiare l'ordine degli elementi. Per inserire più elementi alla fine o eliminare, sono necessari i metodi estendi e pop. C'è anche una funzione invertita, che è simile a quella ordinata, ma viene utilizzata tramite la chiamata lista:
Tutte le operazioni considerate sono più spesso applicate alle liste e sono di base. Ma ci sono metodi altamente specializzati. Ad esempio, .copy (), che crea una copia superficiale di un oggetto e .count (), che restituisce il numero di elementi. Per vedere l'intero elenco di funzioni disponibili in Python applicabili all'oggetto list, è necessario immettere help () o dir () nell'interprete.