2013-03-24 73 views

回答

21

可以解壓返回的元組到一些虛擬變量:

_, keep_this, _ = f() 

它不必是_,只是一些明顯未使用。

(不要在交互式解釋使用_作爲一個虛擬的名字,那裏被用於保持最後的結果。)

 

另外,指數返回的元組:

keep_this = f()[1] 
+1

由幾秒鐘打我吧!該死! – feralin 2013-03-24 19:53:00

+0

我找不到虛擬變量的任何文檔。任何幫助? – Cupitor 2013-03-24 19:54:19

+1

@Naji基本上,代碼所做的就是將元組的三個部分分配給三個變量。單個下劃線是一個有效的變量名稱,並且可以在一個解構賦值中分配多次。所以當這個任務完成時,你將有兩個變量:keep_this和元組中的中間值,而_(如果我是正確的)等於元組中的最後一個值。你應該查看解構賦值以瞭解更多信息。 – feralin 2013-03-24 19:56:38

1

你在做什麼與return a,b,c線正在創建一個tuple,然後從函數返回它。所以你可以使用元組解構來從結果中獲得你想要的值。例如:

def f(x): 
    return x, x + 1, x + 2 
_, b, _ = f(0) 
print(b) # prints "1" 
+0

作爲一個側面的問題,爲什麼代碼都在一行?我在幾行輸入了它...... – feralin 2013-03-24 19:54:25

+0

你設法把[SOH](http://en.wikipedia.org/wiki/Start-of-Header#SOH)(0x01,CTRL-A)字符放在那裏。 – 2013-03-24 19:59:28

+0

我不知道我是如何設法做到的! – feralin 2013-03-24 20:01:24

3
def f(): 
    return 1,2,3 

這裏,f()返回一個元組(1,2,3)所以你可以做這樣的事情:

a = f()[0] 
print a 
1 

a = f()[1] 
print a 
2 

a = f()[2] 
print a 
3