在对list的条件选择有两种常用方法,直接使用filter函数,就是filter(func,sequence);另外一种就是迭代操作,类似 x for x in sequence func。这两种方法,迭代操作比filter函数快一倍左右。

xrange与range的区别,xrange是类,生成器;然后range是直接返回list,所以多用xrange好。

timeit 后面接上操作语句,可以得到操作语句的用时。

对字典dict的筛选操作也类似,同样运用迭代的方法{k:v for k,v in dict.iteritems() func}

对set的操作也类似,同样的{x for x in set func}

关于为元组的元素命名,增加程序可读性。

eg:user=('john',16,'male')

1,是通过关键字=常量,如:name=0,然后user[name]就可以访问john了

2,通过collection.namedtuple,在创建tuple的时候就定义每个元素的名字,如:user = namedtuple('user',['name','age','sex'])

namedtuple就是tuple的一个子类,其实也就是用一个类的生成器来生成tuple,访问时可以直接用类对象user.name就得到john了。

生成随机list的时候,注意语法 data = [randint(0,10) for _ in xrange(8)]这个 _ 用得好。

用预设值生成dict的时候,可以用dict.fromkeys(seq[,values])来生成,就是用预设的键,如

利用collections库可以更高效地统计,首先利用Counter,就可以生成列表中,每个元素对应出现次数的dict。

然后用Counter.most_common(n),就可以得到出现频度最高的n个元素。

在对英语文本进行操作时,需要用到正则表达式。

import re,然后利用re.split('\W+',object),就可以在非字母处都进行分割。

排序用内置函数sorted。但如果直接用sorted对dict操作,操作的对象是key,无法直接得到我们想要的效果。

1,用zip函数构造我们想要的元组来比较,zip(dict.values(),dict.keys())可以得到value和key组成的元组。

而针对内存的使用,用迭代的方法更加节省内存,所以用zip(dict.itervalues(),dict.iterkeys())会更好。

ps:对元组元素进行排序时,先进行元组的第一个元素比较,然后再进行第二个,如此类推。

2,为sorted函数输入关键字比较,sorted(dict.items(),key=lambda x : x[1])

dict.items()返回的是(key,value),而后面关键字key等于x元组的第二个元素,也就是value,所以这样就直接对value就行比较了。

random.sample随机取样。sample(seq,n)在seq中随机取n个值。

找到多个字典的公共键,首先用dict.viewkeys()获取当前dict的key,这个函数是返回一个set。然后用&(与操作),就可以得到多个dict的公共键了。

语法为 reduce(lambda a,b : a&b,map(dict.viewkeys,[dict1,dict2,dict3...]))

当对dict有顺序要求时,可以利用collections的OrderedDict,OrderedDict是按进入字典的顺序来进行排序的。

双端循环队列可以采用collections中的deque.

存储文件,可以用序列化工具pickle库中的dump,dump(object,file),将目标序列化到文件。反序列化操作就是pickle.load(file)。注意在反序列化时,要提供相应类的定义。

Python168的学习笔记1的更多相关文章

  1. Python168的学习笔记8

    #coding:utf8 #斐波那契数列,第三项起,每一项都等于前两项之和 def memo(func): cache = {}#闭包 def wrap(*args): if args not in ...

  2. Python168的学习笔记7

    关于多线程操作. 对于IO操作,如访问网站,写入磁盘这种需要时间等待响应的操作,多个cpu也几乎不能提高效率. 对于CPU密集型操作,如这个格式转换,可以通过多个cpu同时去进行. 但是对于pytho ...

  3. Python168的学习笔记6

    如何派生内置不可变类型并修改实例化行为. 个人理解,如何派生出自己想要的类. class IntTuple(tuple): def __new__(cls,iterable): g = (x for ...

  4. Python168的学习笔记5

    关于对csv文件的操作. python标准库中有csv的库,使用非常方便. import csv with open('pingan.csv','rb') as rf: reader = csv.re ...

  5. Python168的学习笔记4

    关于普通文本文件的读写 python2.7中,未注明的字符都是以acsii来编码的,而要让字符能够通用,必须声明为unicode. s=u'你好',s.encode('utf8')就是指用utf8来进 ...

  6. Python168的学习笔记3

    list.extend(),可以拓展list,a=(0,1),b=(2,3) a.extend(b),a就变成(0,1,2,3) 分割字符串(除去字符串中的,\/;之类的),如果用str.split( ...

  7. Python168的学习笔记2

    关于for循环,其实质是利用被循环对象的__iter__,或者__getitem__属性接口,由可迭代对象得到迭代器.for循环就是不断调用.next(),直到最终捕获到stop. import re ...

  8. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  9. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

随机推荐

  1. MySQL分布式集群之MyCAT(三)rule的分析【转】

    首先写在最前面,MyCAT1.4的alpha版本已经发布了,这里面修复了不少的bug,也完善了一细节,之前两篇博客已经做了一些修改 ---------------------------------- ...

  2. a标签、img图片、iframe、表单元素、div

    1.<a href="http://www.baidu.com" target=''_blank">百度</a>  超链接标签 2.<img ...

  3. 二十二、springboot之监控管理Actuator

    1.新增spring-boot-starter-actuator的依赖 gradle: compile('org.springframework.boot:spring-boot-actuator') ...

  4. docker stack 部署 redis

    =============================================== 2019/4/16_第2次修改                       ccb_warlock 更新 ...

  5. python基础--类的方法

    一:类的方法说明 类的方法分为实例方法,析构方法,构造方法,类方法,静态方法,属性方法,等等 类方法和静态方法都可以被类和类实例调用,类实例方法仅可以被类实例调用 类方法的隐含调用参数是类,而类实例方 ...

  6. 从源码层次分析asterisk如何产生呼叫

    老规矩,看别人是怎么搞的 http://blog.chinaunix.net/uid-14723273-id-1739552.html over...

  7. C#基础系列 - 反射基础

    反射用于在程序运行过程中,获取类里面的信息或发现程序集并运行的一个过程.通过反射可以获得.dll和.exe后缀的程序集里面的信息.使用反射可以看到一个程序集内部的类,接口,字段,属性,方法,特性等信息 ...

  8. Java项目中classpath路径

    1.src不是classpath, WEB-INF/classes.lib.resources才是classpath,WEB-INF/是资源目录, 客户端不能直接访问. 2.WEB-INF/class ...

  9. 易普优APS混流排序算法助力汽车整车厂的均衡生产

    一.汽车整车厂生产排序的难点 “ 冲压-焊接-涂装-总装”是汽车整车生产的四大工艺类型,它们存在上下游关联关系,每个车间都有自己的优化排序目标,汽车混流生产模式使得生产过程更加复杂,从而生产管控的难度 ...

  10. ab性能测试工具

    Apache自带的压力测试工具——ab初体验 http://studiogang.blog.51cto.com/505887/386852 我们知道压力测试的软件确实很多,诸如微软的WAST,惠普的L ...