话不多说,让我们从最基本的排序算法开始吧插入排序如下图所示,插入排序的实现思路顾名思义,就是不断地在一个已经是有序的数组中,寻找合适位置并插入新元素。具体实现步骤为:首先我们把整个数组拆分为有序区间和未排序区间,有序区间在插入排序一开始只有一个元素,就是数组的第一个元素。接在有序区间之后的一个元素就是准备插入的元素,在图中就是标为绿色的元素,在有序区间内寻找位置并插入。其寻找逻辑为:从后往前依次进行比较,如果待插入元素大于当前元素,则将待插入元素插入到当前
系统 2019-09-27 17:57:14 2597
1.前言当日期数据作为图表的坐标轴时通常需要特殊处理,应为日期字符串比较长,容易产生重叠现象2.设定主/次刻度2.1引用库frommatplotlib.datesimportDateFormatter,WeekdayLocator,DayLocator,MONDAY,YEARLY2.2获取每月/周/日数据获取每月一日数据monthdays=MonthLocator()获取每周一的日期数据mondays=WeekdayLocator(MONDAY)#主要刻度
系统 2019-09-27 17:56:21 2597
实际问题Python中的urllib模块用来处理url相关的操作,unquote方法对应javascript中的urldecode方法,它对url进行解码,把类似"%xx"的字符替换成单个字符,例如:“%E6%B3%95%E5%9B%BD%E7%BA%A2%E9%85%92”解码后会转换成“法国红酒”,但是使用过程中,如果姿势不对,最终转换出来的字符会是乱码“法国红é”。#取得kwkw=self.url.split('&')[-1].repla
系统 2019-09-27 17:55:26 2597
Python中遍历列表有以下几种方法:一、for循环遍历lists=["m1",1900,"m2",2000]foriteminlists:print(item)lists=["m1",1900,"m2",2000]foriteminlists:item=0;print(lists)运行结果:['m1',1900,'m2',2000]二、while循环遍历:lists=["m1",1900,"m2",2000]count=0whilecount
系统 2019-09-27 17:55:00 2597
在Python里面,使用Pandas里面的DataFrame来存放数据的时候想要把数据集进行shuffle会许多的方法,本文介绍两种比较常用而且简单的方法。应用情景:我们有下面以个DataFrame我们可以看到BuyInter的数值是按照0,-1,-1,2,2,2,3,3,3,3这样排列的,我们希望不保持这个次序,但是同时列属性又不能改变,即如下效果:实现方法:最简单的方法就是采用pandas中自带的sample这个方法。假设df是这个DataFramed
系统 2019-09-27 17:53:55 2597
如果要写一个程序,让x1为1,x2为2,然后直到x100为100,你会怎么做?在C这种静态语言里,变量名这个标识符实际上会被编译器直接翻译成内存地址,所以除了手动设置每个变量的值以外,没办法做到这点。而Python这种动态语言则是可以做到的。最容易想到的自然是eval,但是实际上根本不需要这种危险的东西,因为Python的变量名就是一个字典的key而已。要获取这个字典,直接用locals和globals函数即可。因此这个程序可以这样实现:代码如下:>>>n
系统 2019-09-27 17:51:46 2597
Python实现支付宝二维码支付一.沙箱环境配置1.登陆蚂蚁金融开放平台:https://openhome.alipay.com2.选择进入我的开放平台。寻找开发中心的研发服务。3.点击沙箱环境—沙箱应用4.这里博主已经配置好密钥了,所以在RSA2(SHA256)密钥(推荐)这边跟没有注册的不太一样。如果没有配置过密钥请继续向下看,密钥配置完毕跳到代码处5.下载RSA密钥生成工具:https://docs.open.alipay.com/291/10597
系统 2019-09-27 17:45:23 2597
网络爬虫由于一个ip频繁访问同一网站,容易返回456或者被长时间封禁。特别的本机有socks5客户端的设置如下,前提是已经安装了socks5的客户端软件,并且启动起来在固定端口为本机提供服务。使用前先更新requests版本为支持socks的版本。pipinstall-Urequests[socks]importrequestsmy_proxies={"http":"http://127.0.0.1:1080","https":"https://127.0
系统 2019-09-27 17:56:50 2596
一、简介Imageio是一个Python库,提供了一个简单的界面来读取和写入各种图像数据,包括动画图像,视频,体积数据和科学格式。它是跨平台的,运行在Python2.7和3.4+上,易于安装。作为用户,您只需要记住一些功能:imread()和imwrite()-用于单个图像mimread()和mimwrite()-用于图像系列(动画)volread()和volwrite()-用于体积图像数据get_reader()和get_writer()-用于更多控制(
系统 2019-09-27 17:48:25 2596
前言使用pytest-cov无法统计用api调用服务的测试脚本所覆盖率,但大部分的项目基本也是使用api调用。所以我们额外需要使用coverage.pyapi来统计。当你安装pytest-cov时,已经默认安装了coverage这个库。服务启动要想扫描到代码,必须在服务启动的时候要插入coverage相关配置。我这边是flask启动的,所以在flask启动的代码上添加,如下:if__name__=='__main__':cov=Coverage()cov.
系统 2019-09-27 17:48:14 2596
OpenCV-Python官方文档关于图像傅里叶变换和反变换的教程网址:https://docs.opencv.org/4.1.0/de/dbc/tutorial_py_fourier_transform.html目标我们将要学习:•使用OpenCV对图像进行傅里叶变换(DFT):cv2.dft(),cv2.idft()•使用Numpy中FFT(快速傅里叶变换)函数:•傅里叶变换的一些用处•我们将要学习的函数有:cv2.dft(),cv2.idft()等原
系统 2019-09-27 17:47:27 2596
sqlite3本身并没有像pymysql一样原生提供字典形式的游标。cursor=conn.cursor(pymysql.cursors.DictCursor)但官方文档里已经有预留了相应的实现方案。defdict_factory(cursor,row):d={}foridx,colinenumerate(cursor.description):d[col[0]]=row[idx]returnd使用这个函数代替conn.raw_factory属性即可。co
系统 2019-09-27 17:37:59 2596
这篇文章总结了关于二叉树的创建和各种遍历方式。二叉树的创建方式通过层次遍历顺序创建先序遍历顺序(带上叶子结点标识符)创建先序顺序+中序顺序中序顺序+后序顺序二叉树的递归方式先序遍历(递归+非递归)中序遍历(递归+非递归)后序遍历(递归+非递归)广度优先遍历(BFS)首先来定义一下节点的结构classNode():def__init__(self,val):self.val=valself.left=Noneself.right=None然后定义树类clas
系统 2019-09-27 17:57:13 2595
今天遇到一个问题,在同事随意的提示下,用了itertools.groupby这个函数。不过这个东西最终还是没用上。问题就是对一个list中的新闻id进行去重,去重之后要保证顺序不变。直观方法最简单的思路就是:复制代码代码如下:ids=[1,2,3,3,4,2,3,4,5,6,1]news_ids=[]foridinids:ifidnotinnews_ids:news_ids.append(id)printnews_ids这样也可行,但是看起来不够爽。用se
系统 2019-09-27 17:56:46 2595
测试数据:坐标数据:testExcelData.xlsx使用python读取excel文件需要安装xlrd库:xlrd下载后的压缩文件:xlrd-1.2.0.tar.gz解压后再进行安装即可,具体安装方法请另行百度。代码importxlrdimportmatplotlib.pyplotaspltimportnumpyasnp#打开文件data=xlrd.open_workbook(r'testExcelData.xlsx')#获取表格数目nums=len(
系统 2019-09-27 17:55:17 2595