In Python, il list slicing è una pratica comune ed è la tecnica più utilizzata dai programmatori per risolvere problemi efficienti. Considera un elenco Python, per accedere a una serie di elementi in un elenco, devi suddividere un elenco. Un modo per farlo è utilizzare il semplice operatore di slicing, ad esempio due punti (:). Con questo operatore è possibile specificare dove iniziare l'affettatura, dove terminare e specificare il passaggio. Il taglio dell'elenco restituisce un nuovo elenco dall'elenco esistente.
Sintassi dell'affettamento dell'elenco Python
Il formato per la suddivisione degli elenchi è di Pitone L'affettatura dell'elenco è la seguente:
Lst [ Initial : End : IndexJump ]>
Se Lst è una lista, l'espressione precedente restituisce la parte della lista da index Iniziale indicizzare FINE , a una dimensione di passo Salto indice .
Indicizzazione nell'elenco Python
L'indicizzazione è una tecnica per accedere agli elementi di a Elenco Python . Esistono vari modi con cui possiamo accedere a un elemento di un elenco.
Indici positivi
Nel caso dell'indicizzazione positiva, il primo elemento dell'elenco ha il numero di indice 0 e l'ultimo elemento dell'elenco ha il numero di indice N-1, dove N è il numero totale di elementi nell'elenco (dimensione dell'elenco ).

Indicizzazione positiva di una lista Python
Esempio:
In questo esempio, visualizzeremo un intero elenco utilizzando l'affettamento dell'indice positivo.
Python3
# Initialize list> Lst> => [> 50> ,> 70> ,> 30> ,> 20> ,> 90> ,> 10> ,> 50> ]> # Display list> print> (Lst[::])> |
>
>
Produzione:
[50, 70, 30, 20, 90, 10, 50]>
Indici negativi
Il diagramma seguente illustra un elenco insieme ai suoi indici negativi. L'indice -1 rappresenta l'ultimo elemento e -N rappresenta il primo elemento della lista, dove N è la lunghezza della lista.

Indicizzazione negativa di una lista Python
Esempio:
In questo esempio, accederemo agli elementi di una lista utilizzando l'indicizzazione negativa.
Python3
# Initialize list> Lst> => [> 50> ,> 70> ,> 30> ,> 20> ,> 90> ,> 10> ,> 50> ]> # Display list> print> (Lst[> -> 7> ::> 1> ])> |
>
>
Produzione:
[50, 70, 30, 20, 90, 10, 50]>
Affettare
Come accennato in precedenza, l'affettamento delle liste in Python è una pratica comune e può essere utilizzato sia con indici positivi che negativi. Il diagramma seguente illustra la tecnica di affettamento dell'elenco:

Affettamento dell'elenco Python
Esempio:
In questo esempio, trasformeremo l'illustrazione sopra in codice Python.
Python3
# Initialize list> Lst> => [> 50> ,> 70> ,> 30> ,> 20> ,> 90> ,> 10> ,> 50> ]> # Display list> print> (Lst[> 1> :> 5> ])> |
>
>
Produzione:
[70, 30, 20, 90]>
Esempi di affettatura di elenchi in Python
Vediamo alcuni esempi che descrivono l'uso del list slicing in Python.
Esempio 1: Lasciare vuoto qualsiasi argomento come Iniziale, Fine o IndexJump porterà all'uso di valori predefiniti, ovvero 0 come Iniziale, lunghezza dell'elenco come Fine e 1 come IndexJump.
Python3
# Initialize list> List> => [> 1> ,> 2> ,> 3> ,> 4> ,> 5> ,> 6> ,> 7> ,> 8> ,> 9> ]> # Show original list> print> (> 'Original List:
'> ,> List> )> print> (> '
Sliced Lists: '> )> # Display sliced list> print> (> List> [> 3> :> 9> :> 2> ])> # Display sliced list> print> (> List> [::> 2> ])> # Display sliced list> print> (> List> [::])> |
>
>
Banca dati
Produzione:
Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9] Sliced Lists: [4, 6, 8] [1, 3, 5, 7, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9]>
Esempio 2: È possibile generare un elenco invertito utilizzando un numero intero negativo come argomento IndexJump. Lasciando i campi Iniziale e Fine vuoti. Dobbiamo scegliere i valori Iniziale e Fine secondo un elenco invertito se il valore IndexJump è negativo.
Python3
# Initialize list> List> => [> 'Geeks'> ,> 4> ,> 'geeks !'> ]> # Show original list> print> (> 'Original List:
'> ,> List> )> print> (> '
Sliced Lists: '> )> # Display sliced list> print> (> List> [::> -> 1> ])> # Display sliced list> print> (> List> [::> -> 3> ])> # Display sliced list> print> (> List> [:> 1> :> -> 2> ])> |
>
>
Produzione:
Original List: ['Geeks', 4, 'geeks !'] Sliced Lists: ['geeks !', 4, 'Geeks'] ['geeks !'] ['geeks !']>
Esempio 3: Se vengono create alcune espressioni di slicing che non hanno senso o non sono computabili, vengono generati elenchi vuoti.
Python3
# Initialize list> List> => [> -> 999> ,> 'G4G'> ,> 1706256> ,> '^_^'> ,> 3.1496> ]> # Show original list> print> (> 'Original List:
'> ,> List> )> print> (> '
Sliced Lists: '> )> # Display sliced list> print> (> List> [> 10> ::> 2> ])> # Display sliced list> print> (> List> [> 1> :> 1> :> 1> ])> # Display sliced list> print> (> List> [> -> 1> :> -> 1> :> -> 1> ])> # Display sliced list> print> (> List> [:> 0> :])> |
>
>
Produzione:
Original List: [-999, 'G4G', 1706256, '^_^', 3.1496] Sliced Lists: [] [] [] []>
Esempio 4: L'affettatura degli elenchi può essere utilizzata per modificare elenchi o persino eliminare elementi da un elenco.
Python3
# Initialize list> List> => [> -> 999> ,> 'G4G'> ,> 1706256> ,> 3.1496> ,> '^_^'> ]> # Show original list> print> (> 'Original List:
'> ,> List> )> print> (> '
Sliced Lists: '> )> # Modified List> List> [> 2> :> 4> ]> => [> 'Geeks'> ,> 'for'> ,> 'Geeks'> ,> '!'> ]> # Display sliced list> print> (> List> )> # Modified List> List> [:> 6> ]> => []> # Display sliced list> print> (> List> )> |
>
>
Produzione:
Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']>
Esempio 5: Concatenando gli elenchi suddivisi è possibile creare un nuovo elenco o addirittura modificare un elenco preesistente.
Python3
# Initialize list> List> => [> 1> ,> 2> ,> 3> ,> 4> ,> 5> ,> 6> ,> 7> ,> 8> ,> 9> ]> # Show original list> print> (> 'Original List:
'> ,> List> )> print> (> '
Sliced Lists: '> )> # Creating new List> newList> => List> [:> 3> ]> +> List> [> 7> :]> # Display sliced list> print> (newList)> # Changing existing List> List> => List> [::> 2> ]> +> List> [> 1> ::> 2> ]> # Display sliced list> print> (> List> )> |
>
>
Produzione:
Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9] Sliced Lists: [1, 2, 3, 8, 9] [1, 3, 5, 7, 9, 2, 4, 6, 8]>