2012-09-13 43 views
-2

我不是Python開發人員,但我需要將該語言的腳本翻譯爲C#。到目前爲止這麼好,但是......這種說法有什麼作用?我試圖在網上找它,但沒有發現。聲明中的方括號。它是如何工作的?

self.bands = 5 
self.ci = [0] * self.bands 

可以任意1描述這裏發生了什麼? Thx提前!

回答

2

它相乘的單一零五倍列表:

self.ci = [0, 0, 0, 0, 0] 

可以寫成:

self.ci = [] 
for i in xrange(self.bands): 
    self.ci.append(0) 
+1

@Nickon有你應該意識到使用此功能時的重要疑難雜症。結果列表中的項目不是括號中原始項目的*副本*。他們是*參考*。所以如果這個項目是可變的(比如'list')而不是你的不可變的'0',那麼你將得到一個對這個* same *對象的5個引用列表。這幾乎總是不是你想要的。 –

+0

感謝您對該問題的描述:) – Nickon

1

它乘以self.bands整數0的列表,其中將創建的列表長度爲self.bands,包含一堆重複的0。

這是在Python中創建重複序列的慣用方式。

您也可以使用它的字符串,這是序列:

>>> print "!" * 10 
!!!!!!!!!!