规范化的Python编程-迭代器和生成器
来源:互联网 发布:老男孩linux运维视频 编辑:程序博客网 时间:2024/05/22 02:27
迭代器生成器规范化编程总结
import itertools#--------------列表推导式#print [y for y in range(10) if y % 2 == 0]#--------------List comprehension.每当要对序列中的内容进行循环处理时,就该尝试这个def _treatment(pos, element):return '%d: %s' %(pos, element)seq = ["one", "two", "three"]#print [_treatment(i, el) for i, el in enumerate(seq)]#--------------迭代器__metaclass__ = typeclass MyInerator():def __init__(self, step):self.step = stepdef next(self):if self.step == 0:raise StopIterationself.step -= 1return self.stepdef __iter__(self):return self#for el in MyInerator(4): print el#--------------生成器#--------------生成器推导式# (y ** 2 for y in range(10) if y % 2 == 0)#当需要一个将返回一个序列或在循环中执行的函数时def power(values):for value in values:print 'Powering: %s' %valueyield valuedef adder(values):for value in values:print 'Adding: %s' %valueif value % 2 == 0:yield value + 3else:yield value + 2#element = [1, 4, 7, 9, 12, 19]#res = adder(power(element))def psychologist():print 'Tell me about your problems'while True:answer = (yield)if answer is not None:if answer.endswith('?'):print 'Came down, relax!'elif 'good' in answer:print 'A that good, go on!'elif 'bad' in answer:print 'Don\'t be so nagetive!'else:print 'Don\'t be shy!'#free = psychologist()def my_generator():try:yield 'something'except ValueError:yield 'dealing with error'finally:print 'Ok, that over'#gen = my_generator()#itertool模块#当需要抽取位于流中特定位置的数据时,都可以使用islice.def starting_at_five():value = raw_input().strip()while value != '':for el in itertools.islice(value.split(), 4, None):yield elvalue = raw_input().strip()#iter = starting_at_five()#iter.next()
0 0
- 规范化的Python编程-迭代器和生成器
- Python核心编程之迭代器和生成器
- Python的迭代器和生成器
- Python的迭代器和生成器
- Python的迭代器和生成器
- Python的生成器和迭代器
- Python的迭代器和生成器
- python的迭代器和生成器
- 规范化编程:ANSI和UNICODE的使用
- 规范化编程:ANSI和UNICODE的使用
- python迭代器和生成器
- Python 迭代器和生成器
- Python 迭代器和生成器
- Python迭代器和生成器
- Python迭代器和生成器
- python迭代器和生成器
- Python迭代器和生成器
- python迭代器和生成器
- sphinx –rotate机制详解
- 微信公众平台开发教程第19篇-应用实例之人脸检测
- 关于openCV getRotationMatrix2D 函数中平移向量的理解
- 黑马程序员--类与对象
- Java中Scanner的理解大总结
- 规范化的Python编程-迭代器和生成器
- gclub บนมือถือ 24 ชั่วโมง
- Factorization Machines 学习笔记(二)模型方程
- android-实现WebView只能滚动不能点击
- html中的tabIndex属性
- NodeJs服务器管理
- Android MediaProvider 分析
- JavaScript高级程序设计(第三版)学习笔记(1)
- 数据结构——表达式求值(二)