Ottenere un valore da una tupla


153

C'è un modo per ottenere un valore da una tupla in Python usando le espressioni?

def tup():
  return (3, "hello")

i = 5 + tup()  # I want to add just the three

So che posso fare questo:

(j, _) = tup()
i = 5 + j

Ma ciò aggiungerebbe alcune dozzine di righe alla mia funzione, raddoppiando la sua lunghezza.


1
Il _è anche solo una variabile. Viene spesso usato per assegnare un valore che può essere scartato. Ma in teoria puoi ottenere il valore da_
Info-Screen

Risposte:


203

Tu puoi scrivere

i = 5 + tup()[0]

Le tuple possono essere indicizzate proprio come gli elenchi.

La differenza principale tra tuple ed elenchi è che le tuple sono immutabili: non è possibile impostare gli elementi di una tupla su valori diversi o aggiungere o rimuovere elementi come è possibile da un elenco. Ma a parte questo, nella maggior parte dei casi, funzionano praticamente allo stesso modo.


54

Per chiunque in futuro cerchi una risposta, vorrei dare una risposta molto più chiara alla domanda.

# for making a tuple
my_tuple = (89, 32)
my_tuple_with_more_values = (1, 2, 3, 4, 5, 6)

# to concatenate tuples
another_tuple = my_tuple + my_tuple_with_more_values
print(another_tuple)
# (89, 32, 1, 2, 3, 4, 5, 6)

# getting a value from a tuple is similar to a list
first_val = my_tuple[0]
second_val = my_tuple[1]

# if you have a function called my_tuple_fun that returns a tuple,
# you might want to do this
my_tuple_fun()[0]
my_tuple_fun()[1]

# or this
v1, v2 = my_tuple_fun()

Spero che questo chiarisca ulteriormente le cose per coloro che ne hanno bisogno.


1
Grazie per l'aggiornamento. Per completezza, potresti voler aggiungere l'uso del trattino basso come segnaposto 'fittizio' nel disimballaggio della tupla.
Emile,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.