Programmazione Python. Elenco in Python: operazioni di base

01/03/2020

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à. lista python

Proprietà e caratteristiche dell'oggetto elenco

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:

  • Questi sono gruppi di oggetti con posizionamento ordinato da sinistra a destra.
  • Gli elenchi forniscono l'accesso per offset, ovvero per numero di oggetto.
  • In Python, le liste sono eterogenee. La sequenza può includere oggetti di diverso tipo, inclusi numeri, mappe, stringhe, file.
  • Le liste sono classificate come oggetti mutevoli con un numero illimitato di nidificazione.

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. stringa di python

Operazioni di sequenza di base

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:

  • accesso agli elementi usando indici interi __getitem __ ();
  • determinare la lunghezza __len __ ();
  • concatenazione usando l'operatore "+";
  • estrai slice [:].

Elenchi in azione

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:

  • >>> my_list = ["one", "2", "three"] # crea una nuova lista;
  • >>> mia_list;
  • ["Uno", "2", "tre"];
  • >>> len (mia_elenco);
  • 3 # interprete restituisce la lunghezza;
  • >>> mia_elenco + [1, 2, 3] # esegue la concatenazione;
  • ["Uno", "2", "tre", 1, 2, 3];
  • >>> my_list * 2 # ripetizione;
  • ["Uno", "2", "tre", "uno", "2", "tre"].

Quando si esegue la concatenazione su ciascun lato del segno "+", è necessario trovare sequenze dello stesso tipo, altrimenti l'interprete visualizzerà un messaggio di errore:

  • >>> [1, 2, 3] + 3.14 # TypeError: può solo concatenare lista (non "float") per elencare.

Per aggiungere una stringa e un elenco in Python, è necessario eseguire una conversione preliminare per il tipo str:

  • >>> seconda_elenco = lista ("stringa") # trasforma oggetto "stringa";
  • >>> seconda lista;
  • ["S", "t", "p", "o", "k", "a"] # interprete restituisce lista;
  • >>> seconda lista + mia_elenco;
  • ["S", "t", "p", "o", "k", "a", "uno", "2", "tre"].

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. elenco di ordinamento python

Che cos'è l'iterazione e i generatori di elenchi?

L'iterazione è un processo di ripetizione. Nel contesto delle liste, questo è un avanzamento alternativo attraverso gli elementi dell'oggetto che viene iterato. Ad esempio:

  • >>> 3 in [1, 2, 3] # controlla se l'articolo specificato è incluso;
  • vero;
  • >>> per x in [1, 2, 3, 4]: # esegue un'iterazione;
  • stampa (x);
  • 1;
  • 2;
  • 3;
  • 4.

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:

  • >>> List_1 = [c * 4 per c in "SPAM"] # è così che appare la generazione;
  • >>> Lista_1;
  • ["SSSS", "PPPP", "AAAA", "MMMM"];
  • >>> List_2 = [];
  • >>> per c in "SPAM": # comando di generazione simile;
  • List_2.append (c * 4) # list.append () aggiunge nuovi elementi;
  • >>> Lista_2;
  • ["SSSS", "PPPP", "AAAA", "MMMM"].

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". generatore di liste python

Estrazione della fetta e accesso all'indice

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:

  • >>> Lista1 = ["spam", "spam", "spam!"]
  • >>> Lista1 [2] # offset inizia da zero
  • "SPAM!"
  • >>> Lista1 [-2] # offset negativo: contato da destra
  • "Spam"
  • >>> Elenco [1:] # operazione di estrazione sezione restituisce sezioni oggetto
  • ["Spam", "SPAM!"]

Come funziona l'operazione di estrazione della fetta e le sue possibilità

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:

  • >>> my_list = ["one", "eight", "cento"];
  • >>> mia_elenco [0: 2] = ["novantotto", "novantanove"];
  • >>> mia_list;
  • ["Novantotto", "novantanove", "cento"].

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. lista delle caratteristiche di Python

Metodi specifici di oggetti di tipo elenco

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:

  • >>> my_L = ["I", "love", "program", "on"];
  • >>> my_L;
  • ["I", "love", "program", "on"];
  • >>> my_L.append ("Python") # aggiungerà l'elemento specificato tra parentesi;
  • >>> my_L;
  • ["I", "love", "program", "on", "Python"].

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:

  • >>> L = ["abc", "ABD", "aBe"];
  • >>> L.sort (key = str.lower, reverse = True) # Cambia la direzione dell'ordinamento;
  • >>> L;
  • ["ABe", "ABD", "abc"].

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. creazione di liste python

Metodi di insidie

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:

  • >>> my_list = [1, 100, 56, 34, 2, 99];
  • >>> double_list = my_list.sort ();
  • >>> double_list # interpreter non restituisce nulla;
  • >>> mia_list;
  • [1, 2, 34, 56, 99, 100];
  • >>> double_list = ordinati (my_list);
  • >>> lista doppia;
  • [1, 2, 34, 56, 99, 100] # l'interprete restituisce una copia ordinata dell'oggetto.

Metodi aggiuntivi

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:

  • >>> L;
  • [4, 3, 2, 1];
  • >>> lista (invertita (L)) # funzione di ordinamento integrata in ordine inverso;
  • [1, 2, 3, 4].

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.