Python - 如何將 list 列表作為數據結構使用


列表作為棧使用

棧的特點

先進后出,后進先出

 

如何模擬棧?

  • 先在堆棧尾部添加元素,使用 append()
  • 然后從堆棧頂部取出一個元素,使用 pop()
# 模擬棧
stack = [1, 2, 3, 4, 5]

# 進棧
stack.append(6)
stack.append(7)

# 查看棧
print(stack)

# 出棧
print(stack.pop())

print(stack)


# 輸出結果
[1, 2, 3, 4, 5, 6, 7]
7
[1, 2, 3, 4, 5, 6]

 

列表作為隊列使用

隊列的特點

先進先出,后進后出

 

list 能實現隊列嗎?

可以,但不推薦

  • 列表用作先進先出的場景非常低效
  • 因為在列表的末尾進行添加、移出元素非常快
  • 但是在列表的頭部添加、移出元素缺很慢,因為列表其余元素都必須移動一位

 

如何模擬隊列?

使用 collections.deque ,它被設計成可以快速從兩端添加或彈出元素

# collections.deque
from collections import deque

# 聲明隊列
queue = deque(["polo", "yy", "mike"])

# 插入隊列
queue.append("ok")
queue.append("world")
print(queue)

# 移出隊列
print(queue.popleft())
print(queue.popleft())


# 輸出結果
deque(['polo', 'yy', 'mike', 'ok', 'world'])
polo
yy

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM