1.从集合中取出最大或最小N个元素importheapqnums=[1,8,2,23,7,-4,18,23,42,37,2]print(heapq.nlargest(3,nums))#输出[42,37,23]print(heapq.nsmallest(3,nums))#输出[-4,1,2]也支持其他参数支持更为复杂的数据结构portfolio=[{'name':'IBM','shares':100,'price':91.1},{'name':'AAPL',
系统 2019-09-27 17:46:30 1914
在表达式中引用变量时,Python会按照如下的顺序遍历各个作用域,寻找该变量:当前函数作用域任何外围作用域(比如包含当前函数的其他函数)global作用域,即代码所在的模块的作用域如果上述作用域内都找不到变量,就会报NameError异常。但是对变量赋值时,规则会有所不同。如果当前作用域变量已存在,那么其值会被替换。如果不存在,则会视为在当前作用域定义新变量,而不是向外围作用域中寻找。如下函数deffunction():flag=Truedefhelper
系统 2019-09-27 17:46:14 1914
花了些工夫将碎片网部署到了SAE,中途遇到各类问题。感觉SAE看上去很美,实际上却并不是太成熟(至少python版如此)。下面记录下我遇到的一些主要问题以及解决方法。django版本问题Django1.4都即将发布了,SAE平台自带的SAE版本依旧为1.2x。为使用django1.3版本,你需上传自己的django。具体做法可参考SAE手册中的runtime.html#virtualenv日志模块出错最先遇到的是日至模块的问题。错误显示AdminEmail
系统 2019-09-27 17:46:12 1914
django在一个项目的目录结构划分方面缺乏必要的规范,因此不同人的项目组织形式也千奇百怪,而且也很难说谁的做法就比较好。我根据自己的项目组织习惯,发布了一个项目dj-scaffold。前些天在reddit上为我的项目dj-scaffold打了个“广告”(见:http://redd.it/kw5d4)。不想评价甚糟,甚至差点被打成负分。其中更也人将这个项目说的一文不值。面对负面声音虽然会有些不爽,但其中的建设性意见还是需要听取的,至于那些纯属个人偏好部分就
系统 2019-09-27 17:46:10 1914
装饰器基本概念大家都知道装饰器是一个很著名的设计模式,经常被用于AOP(面向切面编程)的场景,较为经典的有插入日志,性能测试,事务处理,Web权限校验,Cache等。Python语言本身提供了装饰器语法(@),典型的装饰器实现如下:@function_wrapperdeffunction():pass@实际上是python2.4才提出的语法糖,针对python2.4以前的版本有另一种等价的实现:deffunction():passfunction=func
系统 2019-09-27 17:45:57 1914
pip版本问题Youareusingpipversionxx.x.x,howeverversionxx.x.xisavailable.本质是想告诉你,版本需要升级啦!下面介绍当直接upgrade解决不了问题是的“强硬”做法!准备阶段:先去【pip官网】下载最新的压缩包!并解压。sudoapt-getremovepython-pip#1.卸载旧版本sudopythonsetup.pyinstall#2.进入压缩包的解压目录执行pip-V#3.看到版本号证明成
系统 2019-09-27 17:45:40 1914
一个mailLogin的jsp页面:<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>MyJSP'mailLogin.jsp'startingpage<%Stringusername="";if(!session.isNew()){username=(String)session.getAttribu
系统 2019-08-29 23:23:34 1914
转载自----http://shangjava.iteye.com/blog/1097096ClassLoader应该是每一个Java程序员都必须了解的,但是我整整工作了四年才发现原来在这方面全是空白,现在在做模块化,必须得了解这方面的知识,模块间必须做隔离.以下是我这段时候的学习和总结,很多东西都是借网上的资料,JDK的ClassLoader的API,做如下总结:1.类加载器概述类加载器是一个对象,是负责加载类.在JVM是通过类加载器的调用LoadCla
系统 2019-08-29 23:15:50 1914
Html代码'.a':'application/octet-stream','.ai':'application/postscript','.aif':'audio/x-aiff','.aifc':'audio/x-aiff','.aiff':'audio/x-aiff','.au':'audio/basic','.avi':'video/x-msvideo','.bat':'text/plain','.bcpio':'application/x-bcpi
系统 2019-08-29 22:59:11 1914
1.引言在并发编程中我们有时候需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式:一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循环CAS的方式来实现,本文让我们一起来研究下DougLea是如何使用非阻塞的方式来实现线程安全队列ConcurrentLinkedQueue的,相信从大师身上我们能学到不少并发编程的技
系统 2019-08-29 22:40:24 1914