Python bisect 管理已排序的序列
> `bisect` 模块包含两个主要函数,`bisect` 和 `insort`,两个函数都利用 二分查找算法来在有序序列中查找或插入元素。 ### bisect {#bisect} bisect是 python 的内置模块,主要用来管理已经排序的数据。 #### **bisect**搜索 {#bisect搜索} * 在 haystack(干草垛)里搜索 nee...
51工具盒子
> `bisect` 模块包含两个主要函数,`bisect` 和 `insort`,两个函数都利用 二分查找算法来在有序序列中查找或插入元素。 ### bisect {#bisect} bisect是 python 的内置模块,主要用来管理已经排序的数据。 #### **bisect**搜索 {#bisect搜索} * 在 haystack(干草垛)里搜索 nee...
> 继承是面向对象编程的一个重要方式,可以扩展父类的功能,而Python作为热门的编程语言,同样具备该功能;除此之外,Python还有多重继承,本文记录 Python 多重继承相关内容。 的效率要高 得多,因为数组在背后存的并不是 float 对象,而是数字的机器翻 译,也就是字节表述。这一点就跟 C 语言中的数组一样。 * ...
<blockquote> <p>Python 引用的使用量特别多,但引用使用不慎很可能影响垃圾对象回收,这时就需要弱引用解决类似问题。</p> </blockquote> <h3>背景 {#背景}</h3> <ul> <li> <p><strong>垃圾回收&...
> 有些 Python 入门教程把元组称为"不可变列表",然而这并没有完全概括 元组的特点。除了用作不可变的列表,它还可以用于没有字段名的记 录。 ### 元组 {#元组} #### 元组和记录 {#元组和记录} 元组其实是对数据的记录:元组中的每个元素都存放了记录中一个字段 的数据,外加这个字段的位置。正是这个位置信息给数据赋予了意义。 ##...
> 在 Python 里,像列表(list)、元组(tuple)和字符串(str)这类 序列类型都支持切片操作,但是实际上切片操作比人们所想象的要强大很多。 ### 切片 {#切片} #### 最后一个元素 {#最后一个元素} 在切片和区间操作里不包含区间范围的最后一个元素是 Python 的风格, 这个习惯符合 Python、C 和其他语言里以 0 作为起始下标的...
> Python 的标准库没有排序容器,这些内容在 `sortedcontainers` 包中有了实现。 ### sortedcontainers {#sortedcontainers} Python 标准库没有实现排序容器,在 `sortedcontainers` 库中有了相关实现。 * pip 包文档: <https://pypi.org/project/...
> 本文记录 Python 原生队列模块。 ### Python 队列 {#Python-队列} * queue 模块实现了多生产者、多消费者的队列。当必须在多个线程之间安全地交换信息时,它在线程编程中特别有用。该模块中的 Queue 类实现了所有必需的锁定语义。 * 该模块实现了三种类型的队列,它们仅在检索条目的顺序上有所不同。 * \*\*Queue \*\*...
<blockquote> <p>本文记录 Python 内置实现的小顶堆模块。</p> </blockquote> <h3>堆 {#堆}</h3> <ul> <li>堆是一种特殊的树,它每个结点都有一个值,堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。就类似一堆东...
<blockquote> <p>python 自带内存回收机制,但时不时也会发生内存泄漏的问题,本文记录 Python 内存泄漏相关内容。</p> </blockquote> <h3>内存泄漏 {#内存泄漏}</h3> <p>程序运行时都需要在内存中申请资源用于存放变量,python 在处理内存...