Python获取本机IP地址

Python获取本机IP地址

前言引出问题:在参考网上获取 IP 地址的代码,具体实现如下:import socketimport fcntlimport structdef get_ip_address(ifname): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) return socket.inet_ntoa(...
pyquery与XPath的使用记录

pyquery与XPath的使用记录

概述在爬虫工作中,对页面的解析工作是不可避免的,因此如何准确高效的匹配出目标信息,对于数据的提取尤为重要。对于网页的节点来说,它可以定义 id、class 或其他属性。而且节点之间还有层次关系,在网页中可以通过 XPath...
Python 代码性能优化

Python 代码性能优化

前言Python 的优劣势Python 的优势简单,优雅,易学可移植性——由于 Python 开源的本质,它已经被移植到了大多数平台下面,例如:Windows、MacOS、Linux、Andorid、iOS 等等。可扩展性——如果你需要你的一段关键代码运行得更...
回溯详解以及与 DFS 算法的关联

回溯详解以及与 DFS 算法的关联

概述回溯法是一种选优搜索法(试探法),被称为通用的解题方法,这种方法适用于解一些组合数相当大的问题。通过剪枝(约束+限界)可以大幅减少解决问题的计算量(搜索量)。深度优先搜索(Depth-First-Search,DFS)是一种...
Python 实现二叉搜索树(BST)

Python 实现二叉搜索树(BST)

前言二叉搜索树(Binary Search Tree)是一种特殊的二叉树,支持多种动态集合操作,如 Search、Insert、Delete、Minimum 和 Maximum 等。二叉查找树要么是一棵空树,要么是一棵具有如下性质的非空二叉树:若左子树非空,则...
Python 与二叉堆

Python 与二叉堆

什么是二叉堆二叉堆(binary heap)是一种特殊的堆,二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足堆特性:父节点的键值总是保持固定的序关系于任何一个子节点的键值,且每个节点的左子树和右子树都是一个二叉堆。当...
Python 判断两个单链表的交点

Python 判断两个单链表的交点

前言在前面两章有介绍过单链表的基本操作以及有环链表的相关问题。本章主要分析两个单链表的交点问题。首先声明,两个单链表只能存在 Y 型交叉,不会存在 X 型交叉。因为如果是 X 型交叉,节点在交叉点之后便不知道 next 指...
Python 判断链表中是否有环,且找出环的入口节点

Python 判断链表中是否有环,且找出环的入口节点

概述单向链表链表中最简单的一种是单向链表,它包含两个域,一个信息域和一个指针域。这个链接指向列表中的下一个节点,而最后一个节点则指向一个空值。一个单向链表包含两个值: 当前节点的值和一个指向下一个节点的链接一...
Python 实现单链表

Python 实现单链表

前言数据结构中的线性表:分为顺序表和链表。线性表线性表(Linear List)是由 n(n≥0)个数据元素(结点)a[0],a[1],a[2]…,a[n-1]组成的有限序列。其中:数据元素的个数 n 定义为表的长度 = "list".length() ("list".l...
Python 实现拓扑排序

Python 实现拓扑排序

什么是拓扑排序在计算机科学领域,有向图的拓扑排序是其顶点的线性排序,使得对于从顶点 u 到顶点 v 的每个有向边 uv,u 在排序中都在 v 之前。例如,图形的顶点可以表示要执行的任务,并且边可以表示一个任务必须在另一个...