2017-04-14 71 views
1

我是Python的新手,如果把代碼放在一行上(而不是許多),總是要走的路。在一行中定義兩個變量,而不是兩行

例如,下面的兩個代碼片段完全相同,但是第一個代碼片斷已刪除1行代碼。這是否被認爲是「非pythonic」?

mean1, var1 = np.mean(value), np.var(value)  

或..

mean1 = np.mean(value) 
var1 = np.var(value)       
+0

你也可以做'mean1 = np.mean(value); var1 = np.var(value)'。這裏不需要拆包,因爲你首先沒有元組。你建立一個元組來解包2個變量。我會做第二種方法。 –

+0

謝謝!有沒有推薦的做法,或者是人的偏好? – Ben

+0

啊好的。這種說法是有道理的。我將採用第二種方法。 – Ben

回答

0

即構建體:

a,b = c 

是特別有用的解壓c這被稱爲一個集合/可迭代由2個元件。

那用處:

mean1, var1 = np.mean(value), np.var(value) 

是半信半疑:你在右邊建立一個tuple只是爲了能夠把它解壓到左側。如果效果是一個內膽,你還可做到這一點:

mean1 = np.mean(value); var1 = np.var(value) 

這樣你就不會產生任何額外的臨時對象。

+0

謝謝!這是有用的知道。 – Ben