python
keep_sy
这个作者很懒,什么都没留下…
展开
-
python-collections模块
python的collections模块是一个集合模块,实现了特定目标的容器,为一些标准的python内建容器如list, dict, set, tuple提供替代选择。Counter:字典的子类,提供了可哈希对象的计数功能。(什么是可哈希对象:可哈希就是不可变,例如tuple string只能复制或切片。不可哈希就是可变对象,例如list, dict,set等,可以添加或者删除元素)def...原创 2019-12-10 15:35:55 · 188 阅读 · 0 评论 -
python中sort()和sorted()研究
python中内置函数sorted能用来进行排序,sorted不改变def sorted(*args, **kwargs): # real signature unknown """ Return a new list containing all items from the iterable in ascending order. A custom key ...原创 2019-12-10 11:20:59 · 352 阅读 · 0 评论 -
二叉树的镜像,python实现
交换左右节点,并且分别交换左右子树的左右节点,用递归。# 二叉树的镜像。用递归做def mirror(root): if not root: return None root.left, root.right = root.right, root.left if root.left: mirror(root.left) if ro...原创 2019-06-10 17:10:38 · 443 阅读 · 0 评论 -
判断一棵树是否为二叉排序树,python实现
二叉排序树(BST)特点:左节点的值小于根节点的值,右节点的值大于根节点的值;并且在左右子树中也遵循同样的规律。二叉排序树(BST)的中序遍历是一个顺序序列。直接判断法:直接判断法关键在于不能只判断左右根节点之间的关系。这样会造成局部二叉排序树的情况,**是错误的!!!**也就是说,左子树的右节点不仅要大于它的根节点,还要小于它根节点的根节点;右子树的左节点不仅要小于它的根节点,还要大于它...原创 2019-06-10 16:55:22 · 1407 阅读 · 0 评论 -
筛选数组中重复的元素, python实现
# 筛选数组中重复的元素def duplicate(arr): hashset = set() duplication = [] for i in arr: if i not in hashset: hashset.add(i) else: duplication.append(i) ...原创 2019-06-09 15:58:43 · 1585 阅读 · 0 评论 -
最大连续子数组的和,python实现
# 最大子数组的和def maxsum_of_subarray(nums): # 如果全负 if max(nums) < 0: return max(nums) # 如果全正 if min(nums) > 0: return sum(nums) # 当数组元素有正有负时 current_sum = 0 ...原创 2019-06-09 15:47:18 · 1400 阅读 · 0 评论 -
合并两个排序数组,python实现
# 合并两个排序数组,生成一个新的数组def merge(list1, list2): res = [] i, j = 0, 0 while i < len(list1) and j < len(list2): if list1[i] <= list2[j]: res.append(list1[i]) ...原创 2019-06-09 15:30:50 · 2836 阅读 · 0 评论 -
如何判断两个链表是否相交,python实现
# 判断两个链表是否相交# 方法一,首尾相接法。先首尾相连,再判断是否有环。有环则说明相交# 首尾相连def create_annulation(pHead1, pHead2): if not pHead1 or not pHead2 or not pHead1.next or not pHead2.next: return None last = pHead...原创 2019-06-09 14:22:01 · 1809 阅读 · 1 评论 -
单向链表找出倒数第k个节点,python实现
# 输入一个链表,输出链表中倒数第k个节点# 设一个快指针,一个慢指针,快指针先往前走(k-1)步。然后快慢指针分别向前一步,当快指针到达末尾时,慢指针刚好到达倒数第k个。def find_kth_to_tail(pHead, k): if not pHead: return None slow = pHead fast = pHead # 快...原创 2019-06-09 14:15:38 · 602 阅读 · 0 评论 -
判断链表是否有环,找到入环节点--python实现
用快慢指针的方法。时间复杂度O(n),空间复杂度O(1)。设置p1为慢指针,p2为快指针,两者初始时都指向链表的头结点 ,慢指针p1每次前进1步,快指针p2每次前进2步。如果链表存在环,则快指针p2肯定先进入环,慢指针p1后进入环,两个指针必定会相遇。如果不存在环,则快指针会先行到达链表的尾部变为None。class LNode: def __init__(self, val): ...原创 2019-06-08 14:31:26 · 2224 阅读 · 0 评论 -
通过前序和中序遍历还原二叉树,python实现
# 通过前序和中序遍历还原二叉树, 用递归def restruct_tree(pre_order, in_order): # 排出两种特殊情况 if len(pre_order) == 0: return 0 elif len(in_order) == 1: return TreeNode(in_order[0]) else: ...原创 2019-06-10 17:38:01 · 1725 阅读 · 0 评论 -
求二叉树每层节点最大值,python实现
# 求二叉树每层的最大值def greatest_nodes(root): if not root: return None next_layer = [root] res = [] while next_layer: temp_next_layer = [] layer_value = [] fo...原创 2019-06-10 20:36:14 · 1431 阅读 · 0 评论 -
python,列表反转,list[: : -1]和list.reverse()
列表的内置函数reverse(), 没有返回值,就地反转切片法的反转,有返回值,是列表类型。原创 2019-07-13 16:40:41 · 2318 阅读 · 0 评论 -
python+Jenkins的部署for Mac
配置java环境1.1 下载jdk并安装: http://www.oracle.com/technetwork/java/javase/downloads/index.html1.2 查看是否安装成功:1.3 配置path和classPath:打开terminal,打开profile文件(需要输入密码)切换英文输入法,键入“i”,进入insert模式,在文件末尾添加JAVA_HO...原创 2019-07-03 21:00:23 · 791 阅读 · 0 评论 -
python+单元测试框架unittest
测试固件每次都执行,setUp和tearDown的测试固件from selenium import webdriverimport unittestimport timeclass BaiduTest(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() s...原创 2019-07-03 16:34:13 · 717 阅读 · 0 评论 -
pycharm, unittest中addTest方法不起作用,unittest模式转换成普通模式
unittest中,想让测试用例按顺序执行,要用到TestSuite类的addTest()方法from selenium import webdriverimport unittestclass BaiduTest(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() ...原创 2019-07-03 13:33:33 · 2486 阅读 · 3 评论 -
python+selenium元素定位实战整理
以chrome driver为例。单个元素的定位from selenium import webdriverimport timedriver = webdriver.Chrome()driver.get('https://www.baidu.com/')# 1. iddriver.find_element_by_id('kw').send_keys('Selenium')#...原创 2019-07-02 15:26:54 · 205 阅读 · 0 评论 -
python 位操作符
位运算符只适用于整形数。按照优先级高低排序如下。原创 2019-06-17 13:10:13 · 470 阅读 · 1 评论 -
python的封装
引用地址:https://www.cnblogs.com/feeland/p/4415645.html封装的目的是,保护隐私,把不想让别人知道的东西封装起来。定义了Student类及实例化,每个实例都拥有各自的name和score。现在若需要打印一个学生的成绩,可定义函数 print_score(),该函数为类外的函数。class Student(object): def __ini...转载 2019-06-17 10:43:17 · 9533 阅读 · 0 评论 -
python的多态性
引用地址: https://www.cnblogs.com/linhaifeng/articles/7340687.html多态是指一类事物有多种形态,比如动物类,可以有猫,狗, 人等等。import abcclass Animal(metaclass=abc.ABCMeta): #同一类事物:动物 @abc.abstractmethod def talk(self): ...转载 2019-06-17 10:23:00 · 1139 阅读 · 0 评论 -
Django学习笔记(4)创建其他网页
每一个网页,都需要三步,指定URL模式;编写视图函数;编写模板。4.1 模板继承在一个项目中,通常有一个用于整个网站的父模板base.html, 并且网站的每个主要部分都有一个父模板,每个部分的父模版继承base.html, 网站的每个网页继承相应部分的父模板。这种配置便于修改网站,效率更高。4.1.1 父模板创建一个父模板,名字叫base.html, 将其存储在index.html所在目...原创 2019-05-21 13:20:08 · 268 阅读 · 0 评论 -
Django学习笔记(3)创建网页:学习笔记主页
使用Django创建网页的过程分为三个阶段:定义URL; 编写视图; 编写模版。定义URL模式,URL模式描述了URL是如何设计的,让Django知道把浏览器请求与网站URL如何正确匹配,以确定返回哪个网页。(用到正则表达式)每个URL被映射到对应的视图,视图函数获取并且处理网页需要的数据。然后调用一个模板,模板可以生成一个网页,通常为html文件。3.1 映射URL修改learning...原创 2019-05-21 11:59:10 · 639 阅读 · 0 评论 -
二叉树的镜像@剑指offer
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。思路分析二叉树的镜像即将二叉树每个节点的左右子节点互换,因此可以利用递归的思想实现。代码实现def Mirror(root): if root != None: #tmp = root.left #root.left = root.right #root.right = tmp...原创 2019-03-13 21:44:39 · 164 阅读 · 0 评论 -
用两个栈实现队列@剑指offer
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路分析在python中,list.append()可以实现在列表末尾添加元素的操作,即push()list.pop()可以实现删除列表元素的操作,默认删除最后一个元素。pop([index = -1])题目给出了队列元素为int类型,因此list.append()和list.pop()可行代码...原创 2019-03-03 11:40:56 · 115 阅读 · 0 评论 -
二维数组查找@剑指Offer
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。算法思路二维数组中,每一行从左向右递增,每一列从上向下递增。因此,得到的二维数组中,左上角的元素最小,右下角的元素最大,为有序数组。比如:a = [[1 2 3] [2 3 4] [3...原创 2019-02-26 23:13:17 · 95 阅读 · 0 评论 -
斐波那契及青蛙跳台阶@剑指offer
题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 n&amp;amp;amp;lt;=39思路分析斐波那契数列:0,1,1,2,3,5,8,13,21,34,55…满足f(n)=f(n-1)+f(n-2),很显然可以用递归来做。代码如下一。法二:动态规划。代码实现#一·递归实现def Fibonacci(n): if n == 0:...原创 2019-03-05 21:34:56 · 132 阅读 · 0 评论 -
重建二叉树@剑指offer
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路分析二叉树的三种遍历方式实质上就是递归的调用。在三种遍历中,前序遍历的第一个一定是根节点root, 中序遍历中,根节点一定在中间的位置,由此可以...原创 2019-03-01 23:24:49 · 233 阅读 · 0 评论 -
Python面向对象基础
Python是一门面向对象的编程语言。本文简单介绍面向对象的基本特征。1.类(class):是对象的集合,类中的对象具有相同的属性和方法。对象是类的实例。2.方法:类中定义的函数称为方法。3.类变量:类变量在整个实例化的对象中是可以公用的。类变量定义在类中,且定义在函数体外部,类变量通常不作为实例变量(对象的变量)一起使用。4.数据成员:类变量或者实例变量用于处理类及其实例对象的相关数据。...原创 2019-02-26 11:42:29 · 109 阅读 · 0 评论 -
从尾到头打印链表@剑指offer
题目描述输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。解题思路在python中,链表是采用“引用+类”的方式来实现。链表本质上是节点的连接,定义节点类class listNode, 每一个节点都由值域和指针域两部分构成。题目要求返回一个arrayList, 也就是说可以依次取到每个节点的值,插入到arrayList里面,每插入一个后,移动head一次。从而可以返回所得的a...原创 2019-02-28 21:36:08 · 122 阅读 · 0 评论 -
python二叉树的深度优先遍历和广度优先遍历
二叉树的实现# 设计实现二叉树,首先需要一个节点类和树类# 并且需要对节点类和树类实例化,树需要一个add方法把新的节点加进去class Node(object): def __init__(self, number): self.number = number self.rchild = None self.lchild = None...原创 2019-03-16 18:15:04 · 720 阅读 · 0 评论 -
python栈的实现
栈的基本原理是先进后出,每次只能最先取到栈顶的元素,然后栈的结构得到改变。# 实现栈,需要节点类和栈类class Node(object): def __init__(self, data, next=None): self.data = data self.next = nextclass Stack(object): def __init__(self, top=None)...原创 2019-03-16 20:40:34 · 849 阅读 · 0 评论 -
二叉搜索树的python实现
二叉搜索树,特点是左节点的值小于根节点的值,右节点的值大于根节点的值,并且左右子树也遵循这个规律.class BinarySearchTree(object): def __init__(self, key): self.key = key self.left = None self.right = None def find(s...原创 2019-04-02 19:42:47 · 728 阅读 · 0 评论 -
Django学习笔记(2)创建应用程序
2. 创建应用程序打开一个新的终端窗口,激活虚拟环境,再执行命令startapp创建新的应用程序 learning_logs.learning_log$ source ll_env/bin/activate(ll_env)learning_log$ python3 manage.py startapp learning_logs2.1 定义模型每当需要修改“学习笔记”管理的数据时,采取...原创 2019-05-21 11:31:32 · 228 阅读 · 0 评论 -
Django学习笔记(1)建立项目
1. 建立项目1.1 建立虚拟环境使用Django首先要建立一个虚拟环境,在这个虚拟环境中安装包,这样做的好处是,可以将这个项目的库与其他项目分离,并且便于将该项目部署到服务器。为项目新建一个目录,在终端中切换到这个目录。在项目目录下创建虚拟环境:learning_log$ python3 -m venv ll_env这里运行了模块venv,创建了名为ll_env的虚拟环境。(注:...原创 2019-05-21 09:39:33 · 364 阅读 · 3 评论 -
Django入门,'learning_logs.urls'模块找不到报错
learning_logs/urls.py和learning_log/url.py的代码如下,在终端起runserver时候报错,ModuleNotFoundError: No module named ‘learning_logs.urls’。解决办法如下:在learning_logs/urls.py加上app_name = ‘learning_logs’.原因是只在learning_...原创 2019-05-20 21:54:52 · 4025 阅读 · 5 评论 -
Python知识点整理【语法】
本篇内容从《Python编程 从入门到实践》整理而来。1.列表列表是有序的集合,访问列表元素只需要给出该元素的位置或者索引就可以了。列表的索引是从0开始的。索引可以为负,最后一个元素的索引为-1, 类似地,倒数第二个元素索引为-2.在列表末尾添加元素,用append()方法;在列表中间加入元素,用insert()方法,需要指定新元素的索引和值。在列表末尾删除元素,用pop()方法;...原创 2019-05-08 21:19:20 · 7937 阅读 · 1 评论 -
连续子数组的最大和@剑指offer
HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和,...原创 2019-04-27 17:41:05 · 102 阅读 · 0 评论 -
二叉树中和为某一值的路径@剑指offer
题目描述输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)思路分析由题目分析可知,要找到这样一条路径...原创 2019-04-03 17:42:54 · 135 阅读 · 0 评论 -
二叉搜索树与双向链表的转换@剑指offer
题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。思路分析二叉搜索树BinarySearchTree的特点是,左节点的值小于根节点的值,右节点的值大于根节点的值,并且左右子树遵循同样的规律。如图为一棵二叉搜索树,由此可见二叉搜索树的规律是:他的中序遍历是有序的序列。2-5-6-8-9-10-11, 因此如果要判断一...原创 2019-04-03 10:58:42 · 138 阅读 · 0 评论 -
python排序算法之快速排序(QuickSort)
快速排序的思想是:首先任意选取一个数据(通常会选用数组的第一个数)作为关键数据,然后将比它小的值放到左边,比它大的放到右边。一趟快速排序的算法是:1)设置两个变量i、j, 在开始排序的时候,i=0, j=len(arr)-1;2)以第一个数组元素作为关键数据,赋值给key,即key=arr[0];3)从j开始从后向前搜索,j–, 找到第一个小于key的值arr[j], 将arr[i]和ar...原创 2019-04-12 09:36:25 · 407 阅读 · 0 评论