Pythonnext函数实际操作教程

Python next函数在实际使用的时候有不少的问题需要我们学习。相关的技术需要不断学习才能更好的掌握。下面就向大家介绍下有关于Python next函数的具体使用情况。

成都创新互联公司专注于企业成都全网营销、网站重做改版、沅江网站定制设计、自适应品牌网站建设、H5开发商城建设、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为沅江等各大城市提供网站开发制作服务。

下面给出一个用iterator的实现,一个CharBufReader类,封装了buf,对外提供一次读取一个byte的接口(内部实现从buf读取,buf读完再fill buf)。这样代码好复用。

因为提供Python next函数,所以可以用iterator访问。但是效率上很慢,和以前不优化,用file.read(1)差不多90s左右的时间。可以看出就是主要是因为函数调用造成了原来程序速度慢。而不是因为不用自己写的缓冲读文件时间长。

 
 
 
  1. class CharBufReader(object):
  2. def __init__(self, mfile, bufSize = 1000):
  3. self.mfile = mfile
  4. #self.bufSize = 64 * 1024 #64k buf size
  5. self.capacity = bufSize
  6. self.buf = '' #buf of char
  7. self.cur = len(self.buf)
  8. self.size = len(self.buf)
  9. def __iter__(self):
  10. return self
  11. def next(self):
  12. if self.cur == self.size:
  13. #if self.cur == len(self.buf):
  14. #if self.cur == self.buf.__len__():
  15. selfself.buf = self.mfile.read(self.capacity)
  16. self.size = len(self.buf)
  17. if self.size == 0:
  18. raise StopIteration
  19. self.cur = 0
  20. self.cur += 1
  21. return self.buf[self.cur - 1] 
  22. class Compressor():
  23. def caculateFrequence(self):
  24. """The first time of reading the input file and caculate each
  25. character frequence store in self.dict
  26. """
  27. self.infile.seek(0)
  28. reader = compressor.CharBufReader(self.infile)
  29. for c in reader:
  30. if c in self.dict:
  31. self.dict[c] += 1
  32. else:
  33. self.dict[c] = 0

以上就是对Python next函数的详细介绍,希望大家有所收获。

网页标题:Pythonnext函数实际操作教程
网站URL:http://www.shufengxianlan.com/qtweb/news29/247079.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联