
python-提高
文章平均质量分 71
Claroja
这个作者很懒,什么都没留下…
展开
-
python 特殊方法(dunder-getitem)
python的特殊方法使得python的编程方式更加的统一规范。 python的特殊方法是被python解释器直接调用的,我们不需要直接调用它。也就是说部能写成object.len(),而应该写成len(object)。len()会直接调用object.len()方法。 如果是python的内置类型,比如list/str/bytearray,Cpython会直接读取PyVarObject的ob_原创 2017-08-10 16:35:03 · 2029 阅读 · 0 评论 -
python 链表
顺序表的构建需要预先知道数据大小来申请连续的存储空间. 链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。链表(Linked list)是在每一个节点(数据存储单元)里存放下一个节点的位置信息(即地址)。单向链表 单项循环列表双向链表 应用 链表的插入删除效率极高,达到O(1),广泛应用在内存池,进程池,git的commit队列和栈...原创 2018-03-14 17:09:42 · 568 阅读 · 0 评论 -
python 顺序表
顺序表结构图a是一体式结构,存储表信息与元素存储区信息安排在一块存储区里. 图b是分离式结构,表对象里只保存于整个表有关的信息(容量和元素个数),实际数据元素存放在另一个独立的元素存储区里.通过指针链接.二者区别: 如果增加元素超过了列表的最大存储量时,则需要新建一个数据区. 一体式结构若想更换数据区,则要整体更改;而分离式结构则只需要更改表信息区中的数据区链接地址即可.即该...原创 2018-03-14 16:31:36 · 2778 阅读 · 0 评论 -
python 数据结构 基础
算法 算法是解决问题的方法和思想。 算法复杂度 对于算法的时间性质和空间性质,最重要的是其数量级和趋势.可以认为3n23n23n^2和1000n21000n21000n^2,都是n2n2n^2级算法完成工作最少需要多少基本操作,即最优时间复杂度 算法完成工作最多需要多少基本操作,即最坏时间复杂度 无特殊说明时,算法的时间复杂度都是指最坏时间复杂度基本操作,即只有常数项,认为其时间...原创 2018-03-13 15:50:02 · 675 阅读 · 0 评论 -
选择排序
给定一个长度为N的序列,初始L是最低的边界初始值是0: 1.在[L…N-1]中,查找最小的元素X的位置 2.交换X元素和第L个元素 3.将L加1,重复步骤1,2,直到L=N-2复杂度O(N2)O(N2)O(N^2)def selection_sort(alist): n = len(alist) for i in range(n-1): min_i...原创 2018-03-15 18:04:44 · 668 阅读 · 0 评论 -
python 二叉树
概念 二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree) 性质 性质1: 在二叉树的第i层上至多有2^(i-1)个结点(i>0) 性质2: 深度为k的二叉树至多有2^k - 1个结点(k>0) 性质3: 对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0=N2+1; ...原创 2018-03-15 17:50:10 · 942 阅读 · 0 评论 -
python 树
树(英语:tree)是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 通常使用链式表来实现.它具有以下的特点: 1.每个节点有零个或多个子节点; 2.没有父节点的节点称为根节点; 3.每一个非根节点有且只有一个父节点; 4.除了根节点外,每个子节点可以分为多个不相交的子树; 相关术语 节...原创 2018-03-15 17:19:08 · 827 阅读 · 0 评论 -
冒泡排序
伪代码 1.比较相邻的元素(a,b) 2.当a>b时,交换两个元素的位置 3.重复第一步和第二步,直到我们到达最后一个元素 这样最大的值就到达了列表的最底端 4.然后从N中逐步减1,并每次重复123的操作,直到N=1 说明这里有两层的嵌套循环: 1.外层循环N(列表的长度)次 2.内层循环则变得越来越短 i N 0 N-1 1 N...原创 2018-03-14 17:53:00 · 430 阅读 · 0 评论 -
scapy spider.start_requests
class multiprocessing.Process(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None) 参数 说明 target 参数,传入调用方法 name 字符串,给进程命名 arg 元组,传入方法的参数 kwargs 字典,传入原创 2018-01-11 13:21:00 · 570 阅读 · 0 评论 -
timeit
安装1.下载最新版本 http://www.swig.org/download.html 2.安装pcreyum install pcre-devel3.安装swigtar -zxvf swig-3.0.12.tar.gzcd swig-3.0.6./configuremakesudo make install编译模块1.编写c/* File原创 2018-02-07 14:26:34 · 369 阅读 · 0 评论 -
ctypes
ctypes类型 C型 Python类型 c_bool _Bool bool c_char char 1个字符的字节对象 c_wchar wchar_t 1个字符的字符串 c_byte char int c_ubyte 无符号 char int c_short short int c_原创 2018-02-06 15:50:16 · 561 阅读 · 0 评论 -
timeit
以模块形式python -m timeit [-n N] [-r N] [-u U] [-s S] [-t] [-c] [-h] [statement ...]python3 -m timeit '"-".join(map(str, range(100)))'10000 loops, best of 3: 23.2 usec per loop以脚本形式timeit.timeit(stmt='pas翻译 2018-02-06 15:04:00 · 594 阅读 · 0 评论 -
cProfile
当模块使用import cProfileimport recProfile.run('re.compile("foo|bar")') 197 function calls (192 primitive calls) in 0.002 secondsOrdered by: standard namencalls tottime percall cumtime percall fi翻译 2018-02-06 14:51:37 · 741 阅读 · 0 评论 -
sql导入导出
class threading.Thread(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None) 参数 说明 target 参数,传入调用对象 name 参数,传入方法 arg 元组,传入方法的参数 kwargs 字典,传入方法的参数原创 2018-01-11 13:15:30 · 513 阅读 · 0 评论 -
协程
当遇到I/O阻塞时,协程会自动切换到其他的协程上,然后等I/O完成时再切换回来。import geventdef foo(): print('foo1') gevent.sleep(0) print('foo2')def bar(): print('bar1') gevent.sleep(0) print('bar2')gevent.原创 2018-01-11 13:30:59 · 302 阅读 · 0 评论 -
apscheduler
基础概念 触发器(trigger)和保存调度逻辑. 作业存储(job store),默认存储在内存中,也可以保存在数据库中(使用序列化和反序列化实现) 执行器(executor)控制执行的作业 调度器(scheduler)包含以上三者 选择合适的调度器,存储,执行和触发器 名称 描述 BlockingScheduler 当在进程中使用时 Backgr...原创 2018-04-04 11:34:59 · 682 阅读 · 0 评论