1 江小枫

尚未进行身份认证

醉卧沙场君莫笑,古来征战几人回

等级
TA的排名 33w+

Python 数据结构之 堆、栈

堆和栈都是数据项按序排列的数据结构,栈是一种后进先出的数据结构,而堆是一种二叉树。在讲解堆栈之前,先说下队列。一、队列(1)队列的概念队列是一种列表,但是队列只能在队尾加入元素,队首删除元素(就跟排队是一个道理);由此看来,队列和栈刚好相反,是 先进先出(FIFO)。(2)Python语言中的队列 - - queue、dequePython中可以通过queue模块实现队列的相关操作而...

2020-02-16 17:07:20

Python 进程、线程、协程(multiprocessing、threading)详解

在Python中多任务的实现方式为:1、多进程2、多线程3、协程4、多进程+多线程一、多任务原理多任务:操作系统可以同时完成多个任务单核CPU多任务原理:单个cpu核心轮流的执行各个程序,但是切换的速度非常快导致表面上看是同时在执行多核CPU多任务原理:真正的实现多任务,但是任务的数量会远远超过CPU核心的数量,因此操作系统会将各个任务轮流调度到各个核心上执行并发:任务看上去一起...

2020-02-15 18:28:22

python之KMP算法(原理详解)

KMP算法其实就是字符串匹配的一种高效算法,通常称作模式匹配;本文结构如下:一、朴素的匹配算法1、匹配的概念2、朴素算法原理3、代码实现二、KMP算法1、KMP算法简介2、KMP算法原理详解3、求出next()函数4、代码示例一、朴素的匹配算法1、匹配的概念如下图所示,就是模式串T与主串S匹配成功,模式串首尾间的各个元素与主串之间的某一段元素完全相同2、朴素算法原理...

2020-01-20 21:31:30

python 数据结构之线性表---顺序表、链表

线性表是一种简单的数据结构,按照其储存方式,分为顺序表和链表。顺序表和链表的特点如下:顺序表的操作顺序表 L 的基本操作为:clear(L)置空length(L)求表中元素的个数insert(L,i,x)插入新元素delete(L,x删除已有元素empty(L)判断表是否为空index(L,x)返回指定元素在表中的位置pop(i)...

2020-01-17 15:33:28

python之groupby()函数

itertools模块提供了内置函数groupby()能够方便的对数据进行分组,groupby(iterable, key=None)会对iterable生成的连续项进行分组,在分组的过程中会查找重复项,重复项会被定义为一组。函数最终会返回一个迭代器,其生成的元素为(key, group),其中key是一个分组的键值,group是一个迭代器示例:from itertools import g...

2020-01-15 11:39:56

python之itemgetter()函数

operator模块中的itemgetter()函数,是获取对象指定域中的值>>> from operator import itemgetter>>> a = [1,2,3,4,5]>>> b = itemgetter(0)>>> b(a)1>>> c = itemgetter(0,1,2)&...

2020-01-15 10:26:54

python之zip()函数

zip(*iterables)函数时python的内置函数,其作用是将可迭代对象聚合在一起,并返回一个元组迭代器示例1:>>> x = ["a","b","c"]>>> y = [1,2,3]>>> z = [1,2]>>> for i in zip(x,y): print(i)('a', 1)('b', 2)...

2020-01-15 09:34:11

python中的*args、**kwargs用法

在python中经常会遇见参数时*args与**kwargs的情况,其作用就是在搜集与分配参数。1、序列解包在python中,可以通过如下情况进行赋值:a,b,c = [1,2,3]此时等号左右两边的元素个数必须保持一致,如果不一致就会报错。使用运算符星号( * )收集多余的值>>> a, b, *rest = [5, 6, 7, 8, 9]>>>...

2020-01-10 15:59:11

python基础之heapq模块(堆模块)

堆是一种数据结构,本质上是一种二叉树。在python中可以使用heapq模块实现,heapq可以实现一个简单的优先级队列。一、堆的性质堆分为小根堆与大根堆,小根堆的第一个元素可以理解为数值最小的元素,大根堆则相反,以下以小根堆为例在堆的插入和删除过程中,小根堆要保持其性质,即父节点的值要小于或等于其子节点的值,其值就是该数据的优先级二、堆的方法1、创建堆—heappush(heap, ...

2020-01-10 10:15:17

python基础之列表(list)

列表是python的一种内置数据结构,是可以修改的;本文总纲如下:一、list函数函数list能够创建列表,比如可以将字符串或元组创建为列表,任何序列都可以作为list的参数代码示例:二、基本操作(1)直接赋值直接赋值可以修改索引对应的元素值代码示例:(2)删除使用del进行删除,会将相应的元素彻底删除,列表的长度也将改变代码示例:(3)切片赋值首先切片可以对元素进行...

2020-01-08 18:17:09

python基础之eval函数与exec函数

函数exec与eval都可以将字符串作为代码执行(1)eval(expression[, globals[, locals]])expression实参是一个字符串,以及可选的 globals 和 locals。globals 实参必须是一个字典。locals 可以是任何映射对象。代码示例1:a = eval("1+2")print(a)#3b = eval("x+y",{"x":1...

2019-12-05 23:16:48

python基础之dict函数

dict函数是python的内置函数其主要作用是从其他映射或键-值对序列创建字典示例代码如下:item_1 = [("a",1),("b",2)]d1 = dict(item_1)print(d1)#{'a': 1, 'b': 2}item_2 = [("a",1),("b",(2,8))]d2 = dict(item_2)print(d2)#{'a': 1, 'b': (2,...

2019-12-04 22:18:28

python 爬虫学习笔记(三)--- 模拟浏览器登陆(Selenium与chromedriver实现)

前言:模拟登陆的方法有很多,自己最近也学习了很多登陆的方法,但随着现在网站反爬的加强,在网上以及书上看到的很多办法都已经失效。自己的js水平以及网络基本知识的欠缺,在模拟登陆这一块学习的始终不尽人意。好在使用Selenimu模拟登陆比较简单粗暴,能够成功登陆一些网站。虽然它的速度较慢,但也足以抚慰我心。闲话不多说,开始实际操作!...

2019-11-29 21:55:48

python 爬虫学习笔记(二)--- Beutifulsoup 解析页面(find/find_all)

前言通过发送get请求会返回一个response对象,其实就是一个HTML文件,运用BeautifulSoup可以对文件进行解析。图解原理运用Beautifulsoup解析页面对于如何解析HTML页面,其实核心就是两点:1、定位2、获取目标内容当然除了BeautifulSoup,还可以用正则对页面进行解析;很多情况下两种方法需要同时运用。在解析页面时,BeautifulSoup有...

2019-11-20 17:35:55

python 爬虫学习笔记(一)--- requests获取网页源代码(get请求 post请求区别)

python的requests库可以发起的http请求有如下几种:PUTDELETEHEADOPTIONSGETPOSTGET与POST是两种较常使用的请求,也是主要的获取网页源代码的方式。其对比如下:(Ⅰ)使用GET方式访问网页...

2019-11-13 21:37:23

python 字典浅拷贝(copy)与深拷贝(deepcopy)

关于python里面字典的复制,基本有以下三种情况:直接赋值使用copy()使用deepcopy()1、直接赋值a = {"g":(1,3),"h":[1,1,2]}b = ab["g"] = "a"print("a['g'] 的值为 {},b['g'] 的值为 {}".format(a['g'],b['g']))运行结果为:a[‘g’] 的值为 a,b[‘g’] 的值为...

2019-11-07 09:06:09

用pyuic5将.ui文件转化为.py文件(处理one input ui file must be specified报错)

用cmd将.ui文件转换为.py文件开始菜单打开运行,输入cmd在命令行中输入形如:pyuic5 -o E:xxx\xxx\xxx.py E:xxx\xxx\xxx.ui其中分别指代你要生成的.py文件的路径和储存.ui文件的路径然后回车,结果报错最终解决办法是:.ui文件名不能有空格。路径名称当中的文件夹名称也不能有空格;比如你的.ui文件在 project program文...

2019-10-17 00:07:43

python 类的命名空间(关于类中self的理解)

python 类的命名空间最近自学python,学习到类,碰到一个很有意思的问题。因为自己是从小白自学,所以弄懂这个知识点花费了一定的时间。下面分几类情况分别讨论第一段代码如下:class Members(): member = 0 m1 = Members()m2 = Members()print(m1.member)print(m1.member)运行的结果为:00...

2019-10-14 09:14:44
勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。