2012-09-20 429 views
2

我熟悉的節目,但新的Python:在Python中'[0]'是什麼意思?

MEM = [0] * memloadsize

什麼是 '[0]' 代表什麼? 它是一個內置數組嗎?

+2

它只是一個與一個元件陣列。 .. 0 ....你可以做'[12]',它將是一個長度爲1的數組,其中有一個12 ... –

+4

(提示:教程是學習基本語言結構的好地方!) – 2012-09-20 21:31:45

+0

-1至少不要試圖閱讀教程 –

回答

12

[]字符,在這種情況下,被用於構建數組文本:

>>> [] 
[] 
>>> [0] 
[0] 
>>> ['a', 'b', 'c'] 
['a', 'b', 'c'] 

乘法陣列是慣用的,並且生成通過重複由給定因子的數組中的元素得到的數組:

>>> ['a'] * 4 
['a', 'a', 'a', 'a'] 
>>> [0] * 9 
[0, 0, 0, 0, 0, 0, 0, 0, 0] 
>>> [0, 1, 2] * 2 
[0, 1, 2, 0, 1, 2] 

注意[]也用於索引到現有的陣列。在這種情況下,[0]訪問第一元件陣列中:

>>> a = ['first', 'second', 'third'] 
>>> a[0] 
'first' 
>>> a[2] 
'third' 
>>> 
+0

對於這樣一個簡單的問題,這只是一個很好的答案。非常感動。 – KRyan

+0

謝謝,你真好! – Claudiu

7

它只是表示一個元素list只包含一個0.乘以memloadsize會給出listmemloadsize零。

+4

嚴格地說,它會給你一個'memloadsize'引用列表來指向*相同的零*。這種差異與數字無關,但它是*重要的*如果您使用列表乘法,請牢記這一點,因爲如果列表中的內容可能是可變的,那麼這幾乎不是您想要的。 – Ben

+0

謝謝你!我終於明白了在跳上終端並練習之後:mem = [1] * 10 – Sean

2

該命令是概念上等同於這樣的:

mem = [] 
for i in xrange(memloadsize): 
    mem.append(0) 
+0

謝謝!現在我知道這是什麼意思,我明白你的代碼。 – Sean