2017-06-14 53 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 
[] 
>>>