2017-04-14 86 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