Python next函数实际操作教程

开发 后端
Python next函数在平时的使用中常见的一种函数表达式。但是在真正的使用中存在不少的问题,下面我们就来具体学习下相关的技术问题。

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

下面给出一个用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函数的详细介绍,希望大家有所收获。

【编辑推荐】

  1. Python编程语言与Zpoe之间不解的情缘
  2. 简读灵活性的Python编程语言
  3. 对Python编程语言历史说明介绍
  4. 有关Python编程语言进行描述
  5. Python编程语言与Java的性能比较
责任编辑:张浩 来源: CSDN
相关推荐

2020-04-28 15:10:12

OpenCV Pyth阈值Linux

2010-03-09 18:55:27

Python djan

2010-03-16 10:00:37

Python函数

2010-03-05 15:07:35

Python优化图片

2010-03-23 18:38:26

Python os.m

2010-03-09 09:32:20

Python网页爬虫

2010-03-12 15:29:19

Pythonexe

2010-05-10 10:19:28

Oracle实战RMA

2010-03-25 17:28:41

Python配置

2010-03-16 12:39:09

python for

2010-06-01 15:54:46

MySQL-pytho

2010-03-23 17:24:08

Python遍历目录树

2010-05-19 10:37:06

MySQL expla

2010-04-20 11:06:33

Oracle索引

2010-04-01 14:06:13

Oracle Name

2010-03-15 16:54:11

Python字典

2010-03-17 13:14:00

Python Libr

2010-03-29 09:11:02

Python引用计数

2010-04-01 13:39:43

Oracle Name

2010-03-31 16:11:00

Oracle启动
点赞
收藏

51CTO技术栈公众号