CodeGym /Corsi /Python SELF IT /Ottenere sottotuples

Ottenere sottotuples

Python SELF IT
Livello 8 , Lezione 3
Disponibile

12.1 Intervallo di indici

Il codice per ottenere un sottotuple sembra lo stesso che per ottenere una sottolista. In questo, i tuples sono molto simili ad essi. Non vorrei duplicare il materiale, ma la ripetizione è la madre dell'apprendimento...

Ottenere sottotuples, o slicing, permette di estrarre parti di un tuple per creare nuovi tuples. Questo processo è particolarmente utile quando è necessario lavorare con segmenti specifici di dati, memorizzati nel tuple.

Sintassi dello slicing

Gli slice sono creati utilizzando parentesi quadre, all'interno delle quali vengono indicati indici iniziale e finale, separati da due punti. Se l'indice iniziale non è indicato, lo slice inizia dal primo elemento; se l'indice finale non è indicato, lo slice prosegue fino alla fine del tuple.

È possibile ottenere uno slice di un tuple, usando la sintassi tuple[start:stop:step], dove:

  • start — indice iniziale dell'elemento (inclusivo);
  • stop — indice finale dell'elemento (non inclusivo);
  • step — passo con cui viene effettuata la selezione degli elementi.

Esempi:


my_tuple = (0, 1, 2, 3, 4, 5)
sub_tuple = my_tuple[1:4]  # Otteniamo un sottotuple con gli elementi dall'indice 1 al 3
print(sub_tuple) # Mostra (1, 2, 3)
            
sub_tuple_with_step = my_tuple[0:6:2]  # Otteniamo ogni secondo elemento dal 0 al 5
print(sub_tuple_with_step) # Mostra (0, 2, 4) 
        

Se start non è indicato, di default è uguale a 0, e se stop non è indicato — è uguale a len(tuple). Il parametro step per default è uguale a 1.

Esempi:


# Creiamo un tuple con gli elementi da 0 a 5
my_tuple = (0, 1, 2, 3, 4, 5)

# Creiamo un nuovo tuple, iniziando dal secondo elemento del tuple originale
sub_tuple = my_tuple[1:] 
print(sub_tuple)  # Mostra: (1, 2, 3, 4, 5)

# Creiamo un nuovo tuple, includendo gli elementi dall'inizio fino al quarto elemento 
# (indice 4) del tuple originale, con passo 1 (di default)
sub_tuple_with_step = my_tuple[:5] 
print(sub_tuple_with_step)  # Mostra: (0, 1, 2, 3, 4)

12.2 Indici negativi

Gli indici negativi in Python iniziano da -1, che corrisponde all'ultimo elemento della lista (o tuple). -2 indicherà il penultimo elemento e così via. L'uso di indici negativi semplifica l'accesso agli elementi dalla fine di un tuple senza dover calcolare la loro posizione dall'inizio.

Esempi di utilizzo

Vediamo l'utilizzo degli indici negativi per creare uno slice. Supponiamo di avere un tuple con i valori:


my_tuple = (10, 20, 30, 40, 50, 60, 70, 80)

Per ottenere un sottotuple contenente elementi dalla fine fino al centro del tuple, possiamo utilizzare indici negativi.


sub_tuple = my_tuple[-3:-1]
print(sub_tuple) # Mostra (60, 70)

Così, my_tuple[-3:-1] selezionerà elementi con gli indici -3 (il terzo dalla fine) fino a -1 (non incluso l'ultimo), che ci darà un tuple (60, 70).

Ottenere l'ultimo elemento di un tuple:


my_tuple = (10, 20, 30, 40, 50)
last_element = my_tuple[-1]
print(last_element) # Mostra 50 
    

Qui, my_tuple[-1] restituirà sempre l'ultimo elemento del tuple, il che è molto comodo quando non si conosce il numero esatto di elementi nel tuple.

Invertire gli elementi di un tuple all'inverso:


my_tuple = (10, 20, 30, 40, 50)
reversed_tuple = my_tuple[::-1]
print(reversed_tuple) # Mostra (50, 40, 30, 20, 10) 
    

L'utilizzo dello slice [::-1] permette facilmente ed efficacemente di invertire l'ordine degli elementi in un tuple, ottenendo un nuovo tuple con elementi in ordine inverso.

12.3 C'è un elemento nel tuple

Verificare la presenza di un elemento in un tuple è un'operazione standard che consente di sapere se un elemento è all'interno di un tuple. Questo viene fatto usando l'operatore in, che restituisce True se l'elemento è presente nel tuple, e False altrimenti.

Utilizzo dell'operatore in

L'operatore in è un modo semplice e intuitivo per verificare la presenza di un elemento:


my_tuple = (1, 2, 3, 4, 5)
element = 3
if element in my_tuple:
    print(f"{element} è nel tuple.")
else:
    print(f"{element} non è nel tuple.")
    

Verifica che un elemento è assente:

Se vuoi assicurarti che un elemento è assente nel tuple, usa semplicemente la costruzione not in:


names = ('Alice', 'Bob', 'Charlie')
search_name = 'Alice'
if search_name not in names:
    print(f"{search_name} non è nel tuple.")
else:
    print(f"{search_name} è nel tuple.")
    

Non si differenzia quasi per nulla dal lavoro con una lista — è qui che sta l'universalità e la semplicità di Python.

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION