Python学习笔记 - 生成器generator
来源:互联网 发布:洋葱新闻 知乎 编辑:程序博客网 时间:2024/06/08 05:21
#!/usr/bin/env python3# -*- coding: utf-8 -*-# generator 生成器L = [x * x for x in range(10)]print(L)# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]g = (x * x for x in range(10))print(g)# <generator object <genexpr> at 0x00000000028F0120>print(next(g))print(next(g))print(next(g))print(next(g))print(next(g))print(next(g))print(next(g))print(next(g))print(next(g))print(next(g))'''0149162536496481'''# print(next(g))'''Traceback (most recent call last): File "E:\Code\python\learn\generator.py", line 23, in <module> print(next(g))StopIteration'''# 上面这种调用方法太变态了# 正确的使用for循环g = (x * x for x in range(10))for n in g:print(n)'''0149162536496481'''def fib(max):n, a, b = 0, 0, 1while n < max:print(b)a, b = b, a + b # 注意这里n = n + 1return 'done'fib(6)'''112358'done''''def fib(max):n, a, b = 0, 0, 1while n < max:yield b a, b = b, a + bn = n + 1return 'done'# 如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数# 而是一个generatorf = fib(6)f# <generator object fib at 0x00000000022011F8>def odd():print('step 1')yield 1print('step 2')yield(3)print('step 3')yield(5)'''>>> o = odd()>>> next(o)step 11>>> next(o)step 23>>> next(o)step 35'''for n in fib(6):print(n)# 练习 - 杨辉三角def triangles():a = [1];while True:yield aa = [sum(i) for i in zip([0] + a, a + [0])]n = 0for t in triangles():print(t)n = n + 1if n == 10:break'''[1][1, 1][1, 2, 1][1, 3, 3, 1][1, 4, 6, 4, 1][1, 5, 10, 10, 5, 1][1, 6, 15, 20, 15, 6, 1][1, 7, 21, 35, 35, 21, 7, 1][1, 8, 28, 56, 70, 56, 28, 8, 1][1, 9, 36, 84, 126, 126, 84, 36, 9, 1]'''
5 1
- Python学习笔记 - 生成器generator
- python学习笔记--generator生成器
- 08-python学习笔记-生成器:generator
- Python学习笔记(10)-生成器generator和迭代器Iterator
- python3学习笔记:生成器generator
- Python学习笔记-生成器
- Python学习笔记--生成器
- python学习笔记 生成器
- Python生成器学习笔记
- python学习笔记--生成器
- [Python]生成器(generator)
- Python 生成器 generator
- python生成器Generator
- Python-----生成器:generator
- Python 生成器 generator
- Python 生成器(generator)
- Python之生成器Generator
- python中的生成器generator
- Linux文件,文件描述符以及dup()和dup2()
- nfc原理
- 判定url在微信中打开
- 【读书笔记:C++ primer plus 第六版 中文版】第11章 使用类
- Android图像处理之Bitmap类
- Python学习笔记 - 生成器generator
- Java程序员必须掌握的8大排序算法
- 如何写菜单
- java之 ------ 多线程(交互线程)
- 关于INNER JOIN的效率问题
- Selector背景选择器
- sql server2005下载地址
- oracle exp/imp和sqlload
- 基础普及-Jar、War、Ear