2010-06-28 12 views
78

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

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 sarebbe aggiungere qualche decina di righe per la mia funzione, raddoppiando la sua lunghezza.

+0

Il '_' è anche solo un variabile. È spesso usato per assegnare un valore che può essere scartato. Ma teoricamente puoi ottenere il valore da '_' –

risposta

117

È possibile scrivere

i = 5 + Tup()[0] 

tuple possono essere indicizzati come liste.

La differenza principale tra le tuple e le liste è 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 delle situazioni, funzionano praticamente allo stesso modo.

+1

Bingo! Ma questo trascina un'altra domanda: qual è allora la differenza tra una tupla e una lista? O c'è uno? – BCS

+6

tuple is immutable –

+2

@BCS: Sembra che abbia modificato la risposta al tuo commento mentre lo stavi scrivendo ;-) –

25

Per chiunque in futuro alla ricerca di una risposta, vorrei dare una risposta molto più chiara alla domanda

# for making a tuple 

MyTuple = (89,32) 
MyTupleWithMoreValues = (1,2,3,4,5,6) 

# To concatinate tuples 
AnotherTuple = MyTuple + MyTupleWithMoreValues 
print AnotherTuple 

# it should print 89,32,1,2,3,4,5,6 

# To get Value from tuple 
firstVal = MyTuple[0] 
secondVal = MyTuple[1] 


# usage is more like a list 

# if you got a function that returns tuple than you might do this 
Tup()[0] 
Tup()[1] 

#or This 
v1,v2 = Tup() 

Spero che questo cancella ulteriormente le cose per qualcuno

+0

Grazie per l'aggiornamento. Per completezza, è possibile aggiungere l'uso del carattere di sottolineatura come segnaposto "fittizio" nella disimballaggio della tupla. – Emile

+0

e se Tup è una funzione che restituisce una tupla possiamo cambiare il nome in TupFxn. Tup sembra una parola chiave/funzione/built-in python – kdubs

Problemi correlati