python學習筆記5 stack棧

2021-10-05 13:05:44 字數 2223 閱讀 3584

建立乙個類,類當中的物件具有相同的屬性和方法,這裡建立乙個棧,棧內元素共同的特點就是先進後出

# 定義乙個class

class

stack

:# slist是成員變數,被類當中的所有成員函式可見

def__init__

(self, slist)

: self.slist = slist

# 輸出最上面的值

defstackpop

(self)

:#pop可以直接疊加,不需要賦值了

return self.slist.pop(self.getstacklen()-

1)defgetstacklen

(self)

:# 長度

return

len(self.slist)

defstackpush

(self, new_element)

:# 加入乙個新元素,該新元素會進入最上面

defifemptystack

(self)

:# 需要check是否為空

if self.slist:

return

0else

:return

1def

stackpeek

(self)

:# see the front one

return self.slist[self.getstacklen()-

1]defgetstacklist

(self)

:return self.slist

# import上面的函式

from stack import

*#定義乙個新的類,之後可能要用

class

queue

:# see above

def__init__

(self, stack_a, stack_b)

: self.stack_a = stack_a

self.stack_b = stack_b

defenqueue

(self, new_element)

: self.stack_a.stackpush(new_element)

# 將stacka中的元素放入stackb中並輸出,從而使得輸出的順序和輸入的順序一致

defdequeue

(self)

:if self.stack_b.ifemptystack()==

0:return self.stack_b.stackpop(

)else

: a_len = self.stack_a.getstacklen(

)for i in

range

(a_len)

:# a to b

self.stack_b.stackpush(self.stack_a.stackpop())

return self.stack_b.stackpop(

)def

isemptyqueue

(self)

:if self.stack_a.ifemptystack(

)+ self.stack_b.ifemptystack()==

0:return

1else

:return

0def

getqueuelen

(self)

:if self.stack_a.ifemptystack()==

1:return self.stack_b.getstackpeek(

)else

: a_len = self.stack_a.getstacklen(

)for i in

range

(a_len)

: self.stack_b.stackpush(self.stack_a.stackpop())

return self.stack_b.stackpeek(

)def

getstackinqueue

(self)

:return

[self.stack_a.getstacklist(

), self.stack_b.getstacklist(

)]

Python 學習筆記 5

今天從25章開始 p652 學習 python 的 oop 用 看起來更直觀 class class a def init self,value 建構函式 self.data value def add self,other 運算子過載 return class a self.data other ...

Python學習筆記5

列表與元組的區別 sort sort reverse true 對元素進行排序,預設是公升序,小值在前面,後面那種形式是降序,小值在後面 reverse 反轉列表的順序 count value 返回value的出現次數 index value 返回value第一次出現的位置編號 insert i,v...

Python學習筆記 5

模組 用來從邏輯上組織python 包括變數,函式,類,邏輯等,來實現乙個功能。本質就是乙個python檔案。包 從邏輯上組織模組。必須帶有乙個init.py檔案 匯入方式 import module import module1,module2 from module import 不建議用 fr...