Supponiamo che io abbia una funzione:Come ignorare un output di una funzione multi-output in Python?
def f():
...
...
...
return a,b,c
e voglio ottenere solo B in uscita della funzione. Quale compito devo usare?
Grazie.
Supponiamo che io abbia una funzione:Come ignorare un output di una funzione multi-output in Python?
def f():
...
...
...
return a,b,c
e voglio ottenere solo B in uscita della funzione. Quale compito devo usare?
Grazie.
È possibile decomprimere la tupla restituita in alcune variabili dummy:
_, keep_this, _ = f()
Non deve essere _
, solo qualcosa ovviamente non utilizzati.
(Non usare _
come un nome fittizio nell'interprete interattivo, lì viene utilizzato per mantenere l'ultimo risultato.)
In alternativa, l'indice tupla restituita:
keep_this = f()[1]
Quello che si sta facendo con la linea return a,b,c
sta creando un tuple
e quindi lo si restituisce dalla funzione. Quindi puoi usare la decostruzione della tupla per ottenere solo i valori che desideri dal risultato. Esempio:
def f(x):
return x, x + 1, x + 2
_, b, _ = f(0)
print(b) # prints "1"
def f():
return 1,2,3
qui, f()
restituisce una tupla (1,2,3)
in modo da poter fare qualcosa di simile:
a = f()[0]
print a
1
a = f()[1]
print a
2
a = f()[2]
print a
3
mi ha battuto ad esso da un paio di secondi! Darn! – feralin
Non riesco a trovare alcuna documentazione per le variabili dummy. Qualsiasi aiuto? – Cupitor
@Naji in pratica, ciò che fa il codice è assegnare le tre parti della tupla a tre variabili. Un singolo carattere di sottolineatura è un nome di variabile valido e può essere assegnato più volte in un compito di destrutturazione. Quindi, quando questo compito è completo, avrai due variabili: keep_questo, che equivale al valore medio nella tupla, e _, che (se sono corretto) è uguale all'ultimo valore nella tupla. Dovresti cercare compiti distruttivi per saperne di più. – feralin