八大排序算法的Python实现原文地址插入排序插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中。代码实现
系统 2019-09-27 17:55:35 1902
python学习笔记,打算用五章介绍完python基础语法及基本用法。开发环境:python3.7推荐:https://github.com/jackfrued/Python-100-Dayspython基础语法学习不错。编码规范:PEP8风格指南PEP是PythonEnhancementProposal的缩写,通常翻译为“Python增强提案”。每个PEP都是一份为Python社区提供的指导Python往更好的方向发展的技术文档,其中的第8号增强提案(P
系统 2019-09-27 17:55:19 1902
Python语言有一个比较Pythonic的功能,也是一个具有很强大功能的特性,那就是装饰器。1.Python装饰器的原理Python中的装饰器是通过利用了函数特性的闭包实现的,所以我们需要了解Python闭包的原理,以及函数的功能特性。1.1函数特性函数作为变量传递defadd(x):returnx+1a=add(5)print(a)#运行结果:6函数作为参数传递defadd(x):returnx+1defexecute(f):returnf(3)pri
系统 2019-09-27 17:54:59 1902
优化算法时间复杂度算法的时间复杂度对程序的执行效率影响最大,在Python中可以通过选择合适的数据结构来优化时间复杂度,如list和set查找某一个元素的时间复杂度分别是O(n)和O(1)。不同的场景有不同的优化方式,总得来说,一般有分治,分支界限,贪心,动态规划等思想。减少冗余数据如用上三角或下三角的方式去保存一个大的对称矩阵。在0元素占大多数的矩阵里使用稀疏矩阵表示。合理使用copy与deepcopy对于dict和list等数据结构的对象,直接赋值使用
系统 2019-09-27 17:54:58 1902
首先是安装fabric包pipinstallfabricfabric常用参数-l:显示定义好的任务函数名-f:指定fab入口文件,默认入口文件名为fabfile.py-H:指定目标主机,多台主机用","号分割fabric常用APIlocal:执行本地命令,如:local('uname-s')lcd:切换本地目录,如:lcd('/home')cd:切换远程目录,如:cd('/etc')run:执行远程命令,如:run('free-m')sudo:sudo方式
系统 2019-09-27 17:54:56 1902
Python单例模式的两种实现方法方法一importthreadingclassSingleton(object):__instance=None__lock=threading.Lock()#usedtosynchronizecodedef__init__(self):"disablethe__init__method"@staticmethoddefgetInstance():ifnotSingleton.__instance:Singleton.__
系统 2019-09-27 17:54:01 1902
Pandas中对时间这个属性的处理有非常非常多的操作。而本文对其中一个大家可能比较陌生的方法进行讲解。其他的我会陆续上传。应用情景是这样的:考虑到有一个数据集,数据集中有用户注册账号的时间(年-月-日),如下图格式。如果我们希望对用户账号注册时间转为具体的天数,我们可以用如下代码。importpandasaspdtd=data['user_reg_tm']Time=pd.to_datetime(td)Start=pd.datetime(2016,4,16)
系统 2019-09-27 17:53:59 1902
一关于局部变量整体变量的理解以及somethingabout不可变对象defChangeInt(a):...a=10...b=2ChangeInt(b)print(b)2这个不可变对象的实例让我产生了疑惑,于是我做了如下:defChangeInt(a):...a=10...a=2ChangeInt(a)print(a)2这个其实很好理解,因为a=10只是个局部变量,也没有return无法对外部造成影响。哪怕我做如下操作:defChangeInt(a):..
系统 2019-09-27 17:53:47 1902
代码如下所示:#-*-coding:-*-importioLIMIT=150000file_count=0url_list=[]withio.open('D:\DB_NEW_bak\DB_NEW_20171009_bak.sql','r',encoding='utf-16')asf:forlineinf:url_list.append(line)iflen(url_list)
系统 2019-09-27 17:53:40 1902
概述由于Python2的官方维护期即将结束,越来越多的Python项目从Python2切换到了Python3。可是,在实际的工作中,我发现好多人都是在用Python2的思维去写Python3的代码,Python3给我们提供了很多新的、很方便的特性,可以帮助我们快速的编写代码。f-strings(3.6+)在Python里面,我们经常使用format函数来格式化字符串,例如:user="JaneDoe"action="buy"log_message='Use
系统 2019-09-27 17:53:30 1902