2016-04-27 40 views
-1

我從來沒有使用list.pop - 或者至少不記得必須。我只是好奇,爲什麼這是它自己的特殊方法。爲什麼'pop'方法存在?

+2

因爲這是列表式數據結構上非常常見的標準操作? –

+4

有許多算法使用'list'容器作爲'stack'數據結構。 – GWW

回答

4

list.pop()在Python中實現堆棧時非常有用。

例如,

simplestack = list() 
simplestack.append(1) # [1] 
simplestack.append(2) # [1, 2] 
top = simplestack.pop() # 2 

當然,你可以比較容易地編寫明確這個功能,但pop是一個很好的捷徑。

+0

我認爲重要的是要注意,pop()是O(1)(就像append()) - 它應該是堆棧。 – brettb

+0

@brettb新手複雜在這裏,但不會有任何合理的愚蠢的實現是O(1)? –

+0

@AmitGold這是列表/數組和堆棧之間的區別。 'pop(i)',其中'i'是一些索引,不一定是O(1)。只有'pop()',你刪除最後一項的地方是O(1)。 – brettb

相關問題