數據結構:把列表從後進先出改爲後進後出

使用場景:經常用在需要更新數據,新進來的數據和現有的數據進行對比,然後新進來的數據替換原有數據,依次類推。這個過程中要必須注意新舊數據的切換順序,所以裏列表的索引很關鍵。
列表
Python中列表是可變的,這是它區別於字符串和元組的最重要的特點,一句話概括即:列表可以修改,而字符串和元組不能。
以下是 Python 中列表的方法:
方法和描述
list.append(x) 把一個元素添加到列表的結尾,相當於 a[len(a):] = [x]。
list.extend(L) 通過添加指定列表的所有元素來擴充列表,相當於 a[len(a):] = L。
list.insert(i, x) 在指定位置插入一個元素。第一個參數是準備插入到其前面的那個元素的索引,例如 a.insert(0, x) 會插入到整個列表之前,而 a.insert(len(a), x) 相當於 a.append(x) 。
list.remove(x) 刪除列表中值爲 x 的第一個元素。如果沒有這樣的元素,就會返回一個錯誤。
list.pop([i]) 從列表的指定位置移除元素,並將其返回。如果沒有指定索引,a.pop()返回最後一個元素。元素隨即從列表中被移除。(方法中 i 兩邊的方括號表示這個參數是可選的,而不是要求你輸入一對方括號,你會經常在 Python 庫參考手冊中遇到這樣的標記。)
list.clear() 移除列表中的所有項,等於del a[:]。
list.index(x) 返回列表中第一個值爲 x 的元素的索引。如果沒有匹配的元素就會返回一個錯誤。
list.count(x) 返回 x 在列表中出現的次數。
list.sort() 對列表中的元素進行排序。
list.reverse() 倒排列表中的元素。
list.copy() 返回列表的淺複製,等於a[:]。

將列表當做堆棧使用(後進先出)
列表方法使得列表可以很方便的作爲一個堆棧來使用,堆棧作爲特定的數據結構,最先進入的元素最後一個被釋放(後進先出)。用 append() 方法可以把一個元素添加到堆棧頂。用不指定索引的 pop() 方法可以把一個元素從堆棧頂釋放出來。例如:

>>> list_t=["a","b","c"]
>>> list_t.append("d")
>>> list_t.append("e")
>>> list_t
['a', 'b', 'c', 'd', 'e']
>>> list_t.pop()
'e'
>>> list_t
['a', 'b', 'c', 'd']
>>> list_t.pop()
'd'
>>> list_t
['a', 'b', 'c']

將列表當作隊列使用(後進後出)
也可以把列表當做隊列用,只是在隊列裏第一加入的元素,第一個取出來;但是拿列表用作這樣的目的效率不高。在列表的最後添加或者彈出元素速度快,然而在列表裏插入或者從頭部彈出速度卻不快(因爲所有其他的元素都得一個一個地移動)

>>> from collections import deque
>>> list_t=deque(["a","b","c"])
>>> list_t.append("d")
>>> list_t
deque(['a', 'b', 'c', 'd'])
>>> list_t.popleft()
'a'
>>> list_t
deque(['b', 'c', 'd'])
>>>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章