列表生成式&生成器表达式】的更多相关文章

协程函数应用 列表生成式 生成器表达式   一.知识点整理: 1.可迭代的:对象下有_iter_方法的都是可迭代的对象 迭代器:对象._iter_()得到的结果就是迭代器 迭代器的特性: 迭代器._next_() 取下一个值 优点: 1.提供了一种统一的迭代对象的方式,不依赖于索引 2.惰性计算 缺点: 1.无法获取迭代器的长度 2.一次性的,只能往后取值,不能往前退,不能像索引那样去取得某个位置的值 2.生成器:函数内带有yield关键字,那么这个函数执行的结果就是生成器 生成器的本质就是迭代…
一.列表生成式 def func(): return [lambda x:i*x for i in range(4)] print([j(2) for j in func()]) 结果:[6,6,6,6] 二.生成器表达式 def func(): return (lambda x:i*x for i in range(4)) print([j(2) for j in func()]) 结果:[0,2,4,6]…
一.知识点整理: 1.可迭代的:对象下有_iter_方法的都是可迭代的对象 迭代器:对象._iter_()得到的结果就是迭代器 迭代器的特性: 迭代器._next_() 取下一个值 优点: 1.提供了一种统一的迭代对象的方式,不依赖于索引 2.惰性计算 缺点: 1.无法获取迭代器的长度 2.一次性的,只能往后取值,不能往前退,不能像索引那样去取得某个位置的值 2.生成器:函数内带有yield关键字,那么这个函数执行的结果就是生成器 生成器的本质就是迭代器 def func(): n=0 whil…
python3 编码默认为unicode,unicode和utf-8都是默认支持中文的. 如果要python3的编码改为utf-8,则或者在一开始就声明全局使用utf-8 #_*_coding:utf-8_*_ 或者将字符串单独声明: a = "中文".encode("utf-8") 函数式编程 函数式编程中的函数指代的是数学中的函数. 函数式编程输入如果确定,则输出一定是确定的.函数中并没有很多逻辑运算 python是一个面向对象的语言,只是一部分支持函数式编程.…
装饰器 器即函数,装饰即修饰,意指为其他函数添加新功能 装饰器定义:本质就是函数,功能是为其他函数添加新功能 装饰器涉及的知识点= 高阶函数+函数嵌套+闭包 在遵循下面两个原则的前提下为被装饰者新功能 必须遵循的原则: 1)一定不能修改源代码 2)不能修改调用方式 语法糖(格式符号):@ @timer #@timer就等同于cal=timer(cal) def cal(array): res=0 for i in array: res+=i return res cal(range(10)) #…
一.协程函数的应用 写一个装饰器用于让协程函数不需要输入再执行一次next()函数 分析: 在装饰器中生成该协程函数的生成器, 并且执行一次next()函数 def firstNext(func): def wrapper(*args, **kwargs): g = func(*args, **kwargs) next(g) return g return wrapper @firstNext def eater(name): print("{} start to eat".forma…
列表解析式: [expr for iter_var in iterable if cond_expr] 生成器表达式: (expr for iter_var in iterable if cond_expr) 二者的区别: -列表解析式需要生成所有的数据: -生成器解析式不是真正创建列表,而是返回一个生成器,这个生成器在每次计算出一个条目后,把这个条目yield出来.生成器表达式使用了延迟计算,在使用内存上更有效.…
import xpinyinp=xpinyin.Pinyin() #实例化print(p.get_pinyin('小白','')) 函数返回多个值:1.函数如果返回多个值的话,它会把这几个值放到一个元组里2.函数如果返回多个值的话,也可以用多个变量来接收def say(): num1 = 1 num2 = 2 num3 = 3 return num1,num2,num3res=say()print(res) def say(): num1 = 1 num2 = 2 num3 = 3 return…
定义函数 def my_abs(x):#求绝对值的my_abs函数 if x >= 0: return x else: return –x def nop():#空函数 pass#占位符 参数检查 >>> my_abs(1, 2) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: my_abs() takes exactly…
列表生成式 格式:通过一个或者若干个在List里边的for构建List而非List外部的for循环 举个例子:计算从1到10整数的平方构成一个List L=[ x*x for x in range(1,11) ] 作用:①取代for循环+append快速生成一个List ②从已有的List中快速生成另一个List 补充: 1.for后可以跟 if,以达到筛选合适的元素而非全部元素以创建List 如:只取偶数 L=[ x*x for x in range(1,11) if not x%2] 注意:…