python的陣列表示 和 的不同

2021-10-04 10:54:53 字數 1018 閱讀 4042

在除錯乙個python程式,目的是根據配置自動生成乙個選單,選單只有一項,如果這個配置開啟,就要建立它,並把它加入到乙個現成的選單中,比如加入到「編輯」中。

def addactions(self, wid, acts):

for action in acts:

if action is none:

wid.addseparator()

else:

wid.addmenu(action)

def addmenuss(self):

# medit 是乙個 self.menubar().addmenu("編輯")

mnlist = (none, self.mdelp, self.maddp)

addactions(self.medit, mnlist)

mnlist = (self.shortswitch)

self.addactions(self.medit, mnlist)

這裡我們不說具體mdelp、maddp、shortswitch究竟是啥(實際上是乙個選單項^-^),我要**的是mnlist。

最後兩行我是仿照它前面的兩行寫的,很簡單,就是把新的選單項加入到mnlist之後,通過呼叫addactions()再把它們加入到medit選單項中。

看上去兩者除了數量不同之外,寫法沒有區別,但是在執行的時候,卻掛在了最後一行 addactions()的:

for action in acts:
這一行上,多次嘗試都是一樣,我把mnlist也加了一項:

mnlist = (none,shortswitch)
這次順利通過,這樣看,是數量不能為1!這有點奇怪呀,怎麼可能數量至少是2呢?我再改改試試,因為之前用到列表都是用來表示的:

mnlist = [shortswitch]
然後再執行程式,通過!

這樣看來,應該堅持用來表示列表,以明確的標示來表示列表是好的習慣。

陣列的表示

int a 8 pa a 表示方式01 2345 67下標變數 a 0 a 1 a 2 a 3 a 4 a 5 a 6 a 7 陣列名a 常量指標 a a 1 a 2 a 3 a 4 a 5 a 6 a 7 指標變數pa a pa pa 1 pa 2 pa 3 pa 4 pa 5 pa 6 pa 7...

陣列的順序表示和實現

c5 1.h 陣列的順序儲存結構。define max array dim 8 假設陣列維數的最大值為8 struct array bo5 1.cpp 順序儲存陣列 儲存結構由c5 1.h定義 的基本操作 5個 status initarray array a,int dim,void destro...

棧和佇列的陣列表示

棧和佇列 都是動態集合,且在其上進行delete操作所移除的元素都是預先設定的。在棧 stack 中,被刪除的都是最近插入的元素 棧實現的是一種後進先出的策略。類似的,在佇列中,被刪除的總是在集合中存在時間最長的那個元素 佇列實現的是一種先進先出的策略。在計算機上實現棧和佇列有好幾種有效方式。本文將...