
Python
爱橙子的OK绷
时刻准备着。。。
展开
-
python实现归并排序
#! /usr/bin/env python#coding=utf-8def Merge(arr, p, q, r): n1=q-p+1 n2=r-q left=[0]*(n1+1) right=[0]*(n2+1) for i in range(0, n1): left[i]=arr[p+i] for原创 2015-03-19 10:52:09 · 549 阅读 · 0 评论 -
python实现嵌套列表、字典按某一元素去重复
#! /usr/bin/env python#coding=utf-8class HostScheduler(object): def __init__(self, resource_list): self.resource_list = resource_list def MergeHost(self): allResource=[] a原创 2015-12-31 15:29:42 · 6955 阅读 · 0 评论 -
Python多线程同步---互斥锁
分别运行以下每一部分代码,可以查看效果。#! /usr/bin/env python#coding=utf-8import threadingimport time'''#1、不加锁num = 0class MyThread(threading.Thread): def run(self): global num time.sleep(1) #一原创 2016-01-07 10:49:36 · 670 阅读 · 0 评论 -
Python按特定格式实现文件读写
#! /usr/bin/env python#coding=utf-8class ResultFile(object): def __init__(self, res): self.res = res def WriteFile(self): fp = open('pre_result.txt', 'w') print 'write st原创 2016-01-07 19:46:26 · 7337 阅读 · 0 评论 -
Python类方法、静态方法、全局变量的使用
一、全局变量实现全局变量主要有两种方法:声明法和模块法1、声明法在文件开头声明全局变量variable,在具体函数中使用该变量时,需要事先声明 global variable,否则系统将该变量视为局部变量。2、模块法(本文主要使用模块法)把全局变量定义在一个单独的模块中,适用于不同文件之间的变量共享,而且一定程度上避免了全局变量的弊端。二、类方法和静态方法python没有和C++中static关键字原创 2016-01-07 20:39:30 · 10830 阅读 · 0 评论 -
Python多线程同步---文件读写控制
1、实现文件读写的文件ltz_schedule_times.py#! /usr/bin/env python#coding=utf-8import osdef ReadTimes(): res = [] if os.path.exists('schedule_times.txt'): fp = open('schedule_times.txt', 'r')原创 2016-01-28 11:37:23 · 27819 阅读 · 2 评论 -
Python实现对嵌套列表字典按某一元素合并及lambda的使用
#! /usr/bin/env python#coding=utf-8class MergeResource(object): def __init__(self, resource_list): self.resource_list = resource_list def merge_resource(self): merge_resource = []原创 2016-01-12 09:38:13 · 3614 阅读 · 0 评论 -
python迭代器:iter()和__iter__()
概述迭代器更大的功劳是提供了一个统一的访问集合的接口。迭代器为类序列对象提供了一个类序列的接口。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。python的迭代无缝地支持序列对象,而且它还允许程序员迭代非序列类型,包括用户定义的对象。迭代器用起来很灵巧,你可以迭代不是序列但表现出序列行为的对象,例如字典的键、一个文件的行,等等。从根本上说,迭代器就是有一个原创 2016-03-18 10:05:31 · 12708 阅读 · 2 评论 -
Python生成器:yield的使用
生成器概述通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种原创 2016-03-18 11:11:47 · 1861 阅读 · 0 评论 -
super()函数
引入目的引入这个函数的目的就是帮助程序员找出相应的父类,然后方便调用相关属性。Python的继承以及调用父类成员python子类调用父类成员有2种方法,分别是普通方法和super方法。1、普通方法#! /usr/bin/env python#coding=utf-8class Base(object): def __init__(self): print "Base ini原创 2016-03-18 17:12:39 · 2769 阅读 · 0 评论 -
Python装饰器
1、什么是装饰器?装饰器(Decorator)相对简单,咱们先介绍它:“装饰器的功能是将被装饰的函数当作参数传递给与装饰器对应的函数(名称相同的函数),并返回包装后的被装饰的函数”,听起来有点绕,没关系,直接看示意图,其中 a 为与装饰器 @a 对应的函数, b 为装饰器修饰的函数,装饰器@a的作用是:简而言之:@a 就是将 b 传递给 a(),并返回新的 b = a(b)!!!举例:#! /usr转载 2016-03-09 15:48:40 · 396 阅读 · 0 评论 -
Python对象赋值、浅拷贝和深拷贝
1、对象赋值will = ["Will", 28, ["Python", "C#", "JavaScript"]]wilber = will #对象赋值(对象引用)print id(will)print willprint [id(ele) for ele in will]print id(wilber)print wilberprint [id(ele) for ele in w转载 2016-03-07 17:47:14 · 523 阅读 · 0 评论 -
python匿名函数lambda函数
1、为什么要用匿名函数?(1)程序一次性使用,所以不需要定义函数名,节省内存中变量定义空间(2)如果想让程序更加简洁时。在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。2、实例以map()函数为例,计算f(x)=x^2时,除了定义一个f(x)的函数外,还可以直接传入匿名函数:>>> map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]原创 2016-03-09 16:18:24 · 471 阅读 · 0 评论 -
利用random实现随机选择指定个数的元素
代码:#! /usr/bin/env python#coding=utf-8import randomdef rand_test(res, req_num): host_pool = [] for item in res: host_pool.append(item[4]) print host_pool slice = random.sample原创 2016-02-26 17:12:19 · 1895 阅读 · 0 评论 -
Python读写json格式文件
转自:http://blog.youkuaiyun.com/zhanh1218/article/details/26009329?utm_source=tuicool&utm_medium=referral JSON-是一个轻量级的数据交换格式。意味着可以被N多语言读取;可以存在本地,避免数据多次处理; 还可以通过socket和网络上其他计算机交换数据。一、dump dump (obj, fp, skipke转载 2015-10-25 16:31:38 · 12498 阅读 · 0 评论 -
Python re包---正则表达式
作者:Vamei 出处:http://www.cnblogs.com/vamei正则表达式(regular expression)主要功能是从字符串(string)中通过特定的模式(pattern),搜索想要找到的内容。语法之前,我们简介了字符串相关的处理函数。我们可以通过这些函数实现简单的搜索功能,比如说从字符串“I love you”中搜索是否有“you”这一子字符串。但有些时候,我们只是模糊地转载 2015-10-09 16:47:59 · 533 阅读 · 0 评论 -
Python实现堆排序
#! /usr/bin/env python#coding=utf-8#堆排序class Heap(object): #求给定下标i的父节点下标 def Parent(self, i): if i%2==0: return i/2 - 1 else: return i/2 #求给定下标i的左孩原创 2015-03-25 17:49:28 · 806 阅读 · 0 评论 -
Python实现插入排序
#! /usr/bin/env python#coding=utf-8def InsertSort(array): for i in range(1, len(array)): key=array[i] j=i-1 while j>=0 and key<array[j]: array[j+1]=array[j] j-=1 array[j+1]=key if __name__ == '__main_原创 2015-03-19 11:00:50 · 577 阅读 · 0 评论 -
Python实现最大优先队列
说明:为了增强可复用性,设计了两个类,Heap类和PriorityQ类,其中PriorityQ类继承Heap类,从而达到基于最大堆实现最大优先队列。#! /usr/bin/env python#coding=utf-8class Heap(object): #求给定下标i的父节点下标 def Parent(self, i): if i%2==0:原创 2015-03-26 23:38:01 · 1115 阅读 · 0 评论 -
Python实现求解最大子数组问题
#! /usr/bin/env python#coding=utf-8def MaxCrossSubarray(a, low, mid, high): left_sum=-65535 sum=0 for i in range(mid, low-1, -1):#递减,实现mid至low!!! sum=sum+a[i] if sum>left_s原创 2015-03-20 15:39:03 · 1774 阅读 · 0 评论 -
Python实现矩阵相乘
#! /usr/bin/env python#coding=utf-8def MatrixMultiply(a, b): n=len(a) c=[[0]*n for row in range(n)] #初始化c为n行n列的全零矩阵 for i in range(0, n): for j in range(0, n): #c[i][j]原创 2015-03-20 17:40:40 · 6834 阅读 · 1 评论 -
Python实现快速排序
#! /usr/bin/env python#coding=utf-8import random#快排的普通版本def QuickSort(a, p, r): if p<r: q=Partition(a, p, r) QuickSort(a, p, q-1) QuickSort(a, q+1, r)def Partition(a, p,原创 2015-03-27 17:28:23 · 620 阅读 · 0 评论 -
Python实现桶排序
实现范围为1~M的桶排序 对于数组A,包含N个整数,值从1到M,我们可以利用一种非常快速的排序,桶排序(bucket sort)。创建一个数组S,里面含有M个桶,初始化为0。然后遍历数组A,读入Ai时,S[Ai]增一。所有输入被读进后,扫描数组S得出排好序的表。该算法时间花费O(M+N),空间上不能原址排序。#! /usr/bin/env python#coding=utf-8#范围是1~M的桶原创 2015-04-21 15:22:16 · 2992 阅读 · 1 评论 -
Python实现基数排序
#! /usr/bin/env python#coding=utf-8#基于桶排序的基数排序from random import randintdef RadixSort(list,d): for k in xrange(d):#d轮排序 s=[[] for i in xrange(10)]#因为每一位数字都是0~9,故建立10个桶 '''对于数组原创 2015-04-22 16:14:50 · 5119 阅读 · 0 评论 -
Python实现计数排序
#! /usr/bin/env python#coding=utf-8#计数排序def CountingSort(a, b, k): #c=[0]*(k+1) #let c[0...k] be an all 0 array #c=[0 for i in range(0,k+1)] c=[] for i in range(k+1): c.append原创 2015-04-08 13:18:57 · 2074 阅读 · 0 评论 -
Python实现返回数组第i小的元素
#! /usr/bin/env python#coding=utf-8#期望为线性时间的选择算法import randomclass RandomSelect(object): def Partition(self,a, p, r): x=a[r] i=p-1 for j in range(p, r): '''如原创 2015-04-24 11:50:50 · 1582 阅读 · 0 评论 -
Python实现基本数据结构---队列操作
#! /usr/bin/env python#coding=utf-8class Queue(object): def __init__(self,size): self.size=size self.head=-1 #初始化队头 self.tail=-1 #初始化队尾 self.queue=[] def EnQueue原创 2015-04-26 15:58:06 · 1535 阅读 · 0 评论 -
Python实现基本数据结构---栈操作
#! /usr/bin/env python#coding=utf-8#Python实现基本数据结构---栈操作class Stack(object): def __init__(self,size): self.size = size self.stack = [] self.top = 0#初始化,top=0时则为空栈 def原创 2015-04-25 14:14:19 · 1141 阅读 · 0 评论 -
python搭建简易HTTPServer服务
有时需要在电脑间(不同os也可以)共享文件,用python搭建一个web server是一个不错的选择。只需要安装python即可。比如,我在IP为192.168.191.128的主机上需要共享一个目录叫做riacn-code,执行如下命令:cd riacn-codepython -m SimpleHTTPServer得到结果: 这时,在本机浏览器输入:http://0.0.0.0:8000即可原创 2017-04-19 22:14:44 · 23272 阅读 · 2 评论