Python168的学习笔记1
在对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的更多相关文章
- Python168的学习笔记8
#coding:utf8 #斐波那契数列,第三项起,每一项都等于前两项之和 def memo(func): cache = {}#闭包 def wrap(*args): if args not in ...
- Python168的学习笔记7
关于多线程操作. 对于IO操作,如访问网站,写入磁盘这种需要时间等待响应的操作,多个cpu也几乎不能提高效率. 对于CPU密集型操作,如这个格式转换,可以通过多个cpu同时去进行. 但是对于pytho ...
- Python168的学习笔记6
如何派生内置不可变类型并修改实例化行为. 个人理解,如何派生出自己想要的类. class IntTuple(tuple): def __new__(cls,iterable): g = (x for ...
- Python168的学习笔记5
关于对csv文件的操作. python标准库中有csv的库,使用非常方便. import csv with open('pingan.csv','rb') as rf: reader = csv.re ...
- Python168的学习笔记4
关于普通文本文件的读写 python2.7中,未注明的字符都是以acsii来编码的,而要让字符能够通用,必须声明为unicode. s=u'你好',s.encode('utf8')就是指用utf8来进 ...
- Python168的学习笔记3
list.extend(),可以拓展list,a=(0,1),b=(2,3) a.extend(b),a就变成(0,1,2,3) 分割字符串(除去字符串中的,\/;之类的),如果用str.split( ...
- Python168的学习笔记2
关于for循环,其实质是利用被循环对象的__iter__,或者__getitem__属性接口,由可迭代对象得到迭代器.for循环就是不断调用.next(),直到最终捕获到stop. import re ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
随机推荐
- torch.normal(means, std, out=None)
返回满足正态分布的张量 means和std分别给出均值和标准差
- Once you eliminate all the other factors,the only thing remaining must be the truth.
Once you eliminate all the other factors,the only thing remaining must be the truth. 一旦你排除了杂因,剩下的一定是 ...
- Python string interning原理
原文链接:The internals of Python string interning 由于本人能力有限,如有翻译出错的,望指明. 这篇文章是讲Python string interning是如何 ...
- 删除git库中untracked files(未监控)的文件
https://blog.csdn.net/ronnyjiang/article/details/53507306 在编译git库拉下来的代码时,往往会产生一些中间文件,这些文件我们根本不需要,尤其是 ...
- JS调用百度地图API标记地点
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- wpf 在Popup内的TextBox 输入法 不能切换
切换输入法 输入不了中文 [DllImport("User32.dll")] public static extern IntPtr SetFocus(IntPtr hWnd); ...
- GeoHash核心原理解析 - OPEN 开发经验库
阅读目录 引子 一.感性认识GeoHash 二.GeoHash算法的步骤 三.GeoHash Base32编码长度与精度 三.GeoHash算法 四.使用注意点 引子 机机是个好动又好学的孩子,平日里 ...
- 20155225 实验一《Java开发环境的熟悉》实验报告
20155225 实验一<Java开发环境的熟悉>实验报告 一.命令行下Java程序的开发 按照老师提供的步骤,运行程序如下: 二.IDEA下Java程序开发.调试 设置条件断点如下: 三 ...
- PHP的XML Parser(转)
PHP处理XML文件 一.读取,更新(创建或者操作)一个XML文档,需要XML解析器 .有两种XML parsers: 1. Tree-based parser:将XML文档转化为DOM Tree结构 ...
- 站点的安全防范都是后端的职责?非也,Web前端安全同样不可忽视
前言 随着网络的快速普及,网络安全问题的受害者不再只是政府.企业等集体,每一个接触网络的普通人都有可能成为网络攻击的受害者.随着网络的普及,黑客进行网络攻击的手段越来也多,越来越复杂.以网站的攻击为例 ...