026 Python语法之栈与堆

本文深入探讨Python中的栈和队列概念。栈作为一种数据结构,遵循后进先出(LIFO)原则,可以用列表来模拟实现。通过栈可以方便地深度遍历文件路径下的所有文件和文件夹。同时,文章还介绍了队列的不同类型及其参数,如block和timeout,以及PriorityQueue如何根据元素进行排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

栈的概念

  1. 一种结构体
  2. 数据先进后出
用列表模拟栈
mystack = []    # 列表
mystack.append(1)
mystack.append(2)
mystack.append(3)

while len(mystack) != 0:
    value = mystack.pop()
    print(value)
用栈深度遍历一个路径下的文件盒文件夹

队列1

import colections

myqueue = colections.deque([])

队列2

import queue

q1 = queue.Queue(maxsize=0)     # maxsize=0默认不限制元素个数
q1.qsize()          # 计算队列中数据的数量
q1.empty()          # 判断队列是否为空
q1.full()           # 判断队列是否已满
q1.get()            # 阻塞取出数据,如果没有数据会等待
q1.get_nowait()     # 非阻塞取出数据,如果没有数据会报错
q1.put("123")       # 阻塞往队列中添加数据,如果数据满了会等待
q1.put_nowait("12") # 非阻塞添加数据,如果数据满了会报错
q1.join()
q1.task_done()
介绍
  1. 参数中block是阻塞的意思
  2. 参数中timeout是等待超时的意思
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆豆orz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值