`
shuiyutian
  • 浏览: 11007 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
    一、单例模式     如果你想保证某个类从始至终最多只能有一个实例,那么单例模式可能会是你首先想到的,使用__new__静态方法可以很简单的解决: class Singleton(object): def __new__(cls,*args,**kwargs): if '_inst' not in vars(cls): cls._inst = super(Singleton,cls).__new__(cls) return cls._inst     Python 2.X 里你可能看到的实现代码: cla ...
      最近在学习Python,在网上遇到一哥们问一个关于用Python多线程的问题。具体就是读取一个文件中的IP信息,然利用百度地图open api获取IP所在地的经纬度,最后再将取回的结果分类为“请求成功”和“请求失败”分别存入两个文件中。由于自己也在学,所以也就拿来做了做,并分别用Python3和Java实现。     稍稍分析了一下需求能看的出来里面性能瓶颈有两个:     1、一个是查询百度地图OPEN API;     2、写磁盘文件;     于是想到把这两部分分开处理,自然的想到了生产-消费者模式来实现。     对于IP文件信息格式如下(我的测试文件有4125 ...
    我从windows系统里把一个UTF-8的文件传到centos里,用vim打开却发现中文全部都是乱码,随即在网上查了原因,找到解决办法。以下是几点要注意的要点: <1>  确认文件的编码 file是检测文件类型的命令,用它检测文件类型 OK--文件UTF-8编码。   <2>  确认ssh终端的编码 如果你使用的是SecureCRT,也要注意要把字符编码设置为:UTF-8   <3>  确认服务器用户目录下是否有.vimrc文
按键操作:注释:ctrl+v 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如"//",再按Esc,就会全部注释了。删除:先按v,进入visual模式,横向选中列的个数(如"/ /"注释符号,需要选中两列),再按Esc,再按ctrl+v 进入列编辑模式,向下或向上移动光标,选中注释部分,然后按d, 就会删除注释符号。使用替换命令::%s/^/\/\//g来在全部内容的行首添加//号注释:2,50s/^/\/\//g在2~50行首添加//号注释反过来替换既是删除操作。   http://hi.bai ...

python heapq

二叉堆的定义 二叉堆是完全二叉树或者是近似完全二叉树。 二叉堆满足二个特性:     1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。     2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。 当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父结点的键值总是小于或等于任何一个子节点的键值时为最小堆。下图展示一个最小堆:   由于其它几种堆(二项式堆,斐波纳契堆等)用的较少,一般将二叉堆就简称为堆。 堆的存储
Python 类型和对象 原址:http://wiki.woodpecker.org.cn/moin/PyTypesAndObjects#A.2Bj9lOm2cJTsBOSGEPTkk-   Shalabh Chaturvedi Copyright © 2005-2009 Shalabh Chaturvedi All Rights Reserved. (小明同学译 wjm251 AT gmail.com)     关于本书 解释新式的Python对象(new-style):
五分钟理解元类(Metaclasses) 真的,它并非巫术。 原文地址:http://blog.csdn.net/gzlaiyonghao/article/details/3048947    “元类的魔幻变化比
Python的命名空间是Python程序猿必须了解的内容,对Python命名空间的学习,将使我们在本质上掌握一些Python中的琐碎的规则。 接下来我将分四部分揭示Python命名空间的本质:一、命名空间的定义;二、命名空间的查找顺序;三、命名空间的生命周期;四、通过locals()和globals() BIF访问命名空间 重点是第四部分,我们将在此部分观察命名空间的内容。 一、命名空间 Python使用叫做命名空间的东西来记录变量的轨迹。命名空间是一个 字典(dictionary) ,它的键就是变量名,它的值就是那些变量的值。 A namespace is a mapping ...
字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。
定义:zip([iterable, ...])zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。利用*号操作符,可以将list unzip(解压),看下面的例子就明白了: >>> a = [1,2,3] >>> b = [4,5,6] >>> c = [4,5,6,7,8] >>> zipped = zip(a,b) [( ...
             如果对Hadoop的shuffle机制有所了解的人都知道,map所产生的中间数据在送给reduce进行处理之前是要经过排序的。具体过程实际上是快速排序,堆排序和归并排序的完美结合。       首先,当map函数处理完输入数据之后,会将中间数据存在本机的一个或者几个文件当中,并且针对这些文件内部的记录进行一次快速排序,这里的排序是升序排序。在map任务将所有的中间数据写放本地文件并进行快速排序之后,系统会对这些排好序的文件做一次归并排序,并将排好序的结果输出到一个大的文件当中。这段代码是在MapTask的内部类MapOutputBuffer中实现的,其中归并排 ...
Global site tag (gtag.js) - Google Analytics