2017-06-14 30 views
-1

为了不使用那么多行这样的声明变量:我如何在一行中声明多个数组变量 - 蟒蛇

open = [] 

high = [] 

low = [] 

close = [] 

我可以做这样的事情:

open,high,low,close = [] 

那真的有效

+1

最后一行不应该工作。它是如何为你工作的?最后一行*解包*任何在右侧,所以你的列表应该有四个项目来解压 – idjaw

+0

它怎么会不会抛出一个错误? – idjaw

+1

我也是这样,在py27和py3中,它产生'ValueError:需要超过0个值才能解包python和'ValueError:没有足够的值来解压(预期4,得到0)'py35。 – idjaw

回答

1

不是。你问题中的例子不起作用。它将引发ValueError。这是因为Python试图解开四个值成openhighlowclosed,但如果没有发现valuest(这将在Python 2.x中都和Python 3.x中引发错误):

>>> open, high, low, close = [] 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ValueError: not enough values to unpack (expected 4, got 0) 
>>> 

初始化所有在同一行列表的变量,你需要为提供一个列表中的所有四个变量:

>>> open, high, low, closed = [], [], [], [] 
>>> 
>>> open 
[] 
>>> high 
[] 
>>> low 
[] 
>>> closed 
[] 
>>>