左神带我飞[番外篇]python数据结构常用的优先队列和自定义排序以及数据类型典型例子总结

本文介绍了Python中的优先队列,通过PriorityQueue实现自定义优先级,并展示了如何通过`__lt__`方法自定义元素比较规则。同时,文章还探讨了`sort`函数的使用,包括按指定字段排序、忽略大小写排序以及反向排序。此外,还提到了`str`数据类型的特性以及`sorted()`函数的通用性。

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

python

自定义优先队列

优先队列内部默认实现的是小根堆,具有的操作主要有:

向队列中添加元素 Queue.put(obj),每添加一个元素优先队列内部就会进行调整成最小堆;

从队列中获取元素 Queue.get(),每取出一个元素队列内部就会进行调整; 

队列判空 Queue.empty()

队列大小 Queue.qsize()

队列存储的元素是数字:

>>> from queue import PriorityQueue
>>> q = PriorityQueue()
>>> q.put(1)
>>> q.put(2)
>>> q.put(3)
>>> while not q.empty():
...     print(q.get())

自定义比较

from queue import PriorityQueue
 
class comobj():
    def __init__(self, key, name, sex):
        # 优先级
        self.key = key 
        # 具体的属性值,可以用类封装起来
        self.name = name 
        self.sex = sex
        
    def __lt__(self, other):# 这里的比较规则是:先根据key的大小判断,如果key相等则根据name判断
        # 最后都形成小根堆

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值