2015-04-24 5 views
7

Ho una funzione Python che restituisce più valori. Come esempio per questa domanda, considera la funzione seguente, che restituisce due valori.Una funzione Python può restituire solo il secondo di due valori?

def function(): 
    ... 
    return x, y 

So che questo funzione può restituire entrambi i valori x, y = function(). Ma è possibile che questa funzione restituisca solo il secondo valore?

In MATLAB, ad esempio, sarebbe possibile fare qualcosa di simile: ~, y = function(). Non ho trovato un approccio equivalente in Python.

+6

'x = function()' ottiene anche entrambi i valori. Se ci provi, vedrai che x sarà una tupla. – matiasg

risposta

16

L'idioma divinatorio è solo quello di ignorare la prima restituire il valore assegnandolo a _:

_, y = function() 
7

La sintassi più vicina si sta cercando è:

function()[1] 

che restituirà il secondo elemento, dal momento che il risultato di funzione può essere considerata una tupla di dimensioni 2.