python哈希散列的映射
1、散列的映射Map()创建一个空映射,然后回到一个空映射集合。在put(key,val)的映射中添加新的键值对。若键已存在,则用新值代替旧值。get返回key对应的值。如果key不存在,返回none。del通过del map[key]语句从映射中删除键-值对。len()回到映射中存储的键-值对的数目。当键存在时,in通过keyinmap等语句返回...
2024-01-10python二分查找的原理
原理1、假设表中的要素按升序排列,将表中间位置记录的关键词与检索关键词进行比较,如果两者相等,则检索成功。2、否则,利用中间位置记录将表分为前后两个子表。如果中间位置记录的关键词大于搜索关键词,则进一步搜索前一个子表,否则进一步搜索后一个子表。重复以上流程,找到符合条...
2024-01-10python顺序搜索的两种形式
分类1、无序列表顺序搜索,从列表中的第一个元素开始,按默认顺序逐个查看。直到找到目标元素或查看列表。如果查看列表后仍未找到目标元素,则目标元素不在列表中。2、有序列表顺序搜索,假设列表中的元素按顺序排列。如果有目标元素,出现在n个位置的任何位置的可能性还是一样的,所以比...
2024-01-10python有几种排序的方法
1、冒泡排序它反复访问要排序的元素列,并依次比较两个相邻的元素。如果顺序(如从大到小)错了,就交换它们。访问元素的工作是反复进行,直到没有相邻元素需要交换,也就是说元素列已经排序完成。2、选择排序首次从待排序的数据元素中选择最小(或)的元素,存储在序列的开始位置,然后从剩余...
2024-01-10Python单向循环链表的创建
说明1、当实例化一个单向循环链表时,该链表是一个空链表,在将节点依次链接之后,链表中才会出现节点和数据。2、在链表中,为了找到链表的某个节点,需要从链表的头节点开始,依次搜索。因此,在实例单向循环链表中,必须定义链表的头。当添加头节点时,链表的头指向头节点。实例class Nod...
2024-01-10python双向链表的概念介绍
说明1、更复杂的链表是双向链表或双面链表。每个节点有两个链接:一个指向前一个节点,这个节点是第一个。2、一个节点指向空值,另一个指向下一个节点,当该节点指向最后一个节点时指向空值。操作方法is_empty()链表是否为空。length(链表长度。travel)经历链表。添加add(item)链表头部。添加到append(it...
2024-01-10python单向链表如何实现
说明1、每个节点包括两个域、一个信息域(元素域)和一个连接域,该链接指向链接表的下一个节点,最后一个节点的链接指向空值。2、表要素elem用于存储具体数据。链接域next用于存管下一个节点的位置变量P指向链表头节点(首节点)的位置,可以从P出发找到表中的任意节点。实例class Node(object): ...
2024-01-10python标记清除的过程
过程1、垃圾收集的第一步是通过可收集对象链表,将引用从引用中摘除。有些container对象的PyGC_Head.gc.gc_ref还不是0。2、对象的外部引用存在,这些对象是开始标记的root object集合。实例首先我们说一下变量的概念: 1 变量名: 不存值,只是指向一个内存地址 2 赋值符号 3 变量值: 这里...
2024-01-10python阻塞调度如何使用
说明标准调度是python使用软件时钟调度线程,有时python的线程会自动阻塞,例如raw_input(),sleep()等功能,此时python使用阻塞调度。1、主线程调用sleep后,立即释放GIL。调用操作系统的sleep操作。此时,主线程由操作系统自动管理。2、子线程获得GIL。主线程和子线程可以同时由操作系统安排。操作系统在...
2024-01-10pythonPyQt5如何实现窗口功能
说明1、PyQt是制作GUI应用程序的工具包。Python编程语言与Qt库的成功融合。Qt库是目前最强大的库之一。PyQt库文件由C++编写,Qt软件用于C++界面开发;Qt是C++库,PyQt是Python的移植版,PyQt是Qt的wrapper。2、PyQt5是一种先进的语言,在底层实现了窗口的基本功能。实例import sysfrom PyQt5 import QtCore, QtGui, QtWidg...
2024-01-10