python_函数_迭代器
2019-05-26 22:04
80 查看
函数
闭包函数:内函数使用了外函数的局部变量,并且外函数把内函数返回出来的过程叫闭包,被返回出的函数叫闭包函数
def out(): num = 1 def inner(): print(num) return inner res = out() # res == inner res() def out(): num = 1 def middle(): num1 = 2 print(num) def inner(): print(num1) return inner return middle func = out() res = func() # func() 相当于 middle() res() # res() 相当于 inner()
闭包函数
def out(name): def inner(): print(name,"喜欢在夏天穿短裤") return inner func = out("小明") # func == inner : func() == inner() func()
迭代器:数据量(序列里的数据)过大的情况需要用到迭代器
for i in range(1,100000000000): pass # iter() zip(),生成器的方式 # iter() 功能:把可迭代数据对象 转换为迭代器 # 参数: 可迭代的对象(list,str,tuple,set,dict,range()) # 返回值: 迭代器,是可迭代的对象,但可迭代的对象不一定是迭代器 from collections import Iterator,Iterable str1 = "你好世界" res = isinstance(str1,Iterable) print(res) #True res1 = isinstance(str1,Iterator) print(res1)# str1 不是迭代器 list1 = [1,2,3,4,5] res = isinstance(list1,Iterable) print(res) #True res1 = isinstance(list1,Iterator) print(res1)# list1 不是迭代器 # 得到一个迭代器 list1 = [1,2,3,4,5,6,7,8,9,0] res = iter(list1) print(res,type(res)) # str str1 = "北京这块热死了" res = iter(str1) print(res,type(res)) # 从迭代器里取值:三种 # 注意事项:从迭代器里取值,取走一个就少一个,取空之后再取数据的话,就会报错 # 1.使用next() 函数 # tuple tuple1 = (1,2,3,4,5,6) res = iter(tuple1) print(next(res)) print(next(res)) print(next(res)) print(next(res)) print(next(res)) print(next(res)) # print(next(res)) # 2.使用数据类型转换的方式取值 result = list(res) print(result) # 3.使用 for 循环遍历迭代器 for num in res: print(num) result = list(res) print(result) print('--------------------') # 学习一个陌生的函数,学习函数的功能,参数,返回值 # zip(Iterable,Iterable,...) list1 = ["大锤","二妮","小可爱"] tuple1 = ("80","40","白给") res = zip(list1) print(res,type(res)) # 取值 print(next(res)) print(next(res)) print(next(res)) res1 = isinstance(res,Iterator) print(res1) # zip多个参数 list1 = ["大锤","二妮","小可爱","老可爱"] tuple1 = ("80","40","白给") res = zip(list1,tuple1) for name in res: print(name) res1 = dict(res) print(res1) # *zip() # *zip 不能作为开头直接出现,需要和zip 配合使用 list1 = ["大锤","二妮","小可爱","老可爱"] tuple1 = ("80","40","白给") res = zip(*zip(list1,tuple1)) for name in res: print(name)
相关文章推荐
- python迭代器和生成器(3元运算,列表生成式,生成器表达式,生成器函数)
- python函数作用域、迭代器与生成器知识点整理
- python-迭代器-生成器-函数的递归调用与二分法
- python学习-函数式编程常用的函数、闭包和递归函数、迭代器和生成器
- python函数:迭代器和生成器
- Python用zip函数同时遍历多个迭代器示例详解
- python迭代器和iter()函数
- Python迭代器和iter()函数
- python中迭代器和iter()函数
- python-3_函数_匿名函数_正则_yield_迭代器_序列化_内置函数_模块
- 对python中的高效迭代器函数详解
- Python3 迭代器与生成器,函数,数据结构
- python中迭代器和iter()函数
- EffectivePython-函数:闭包、生成器、迭代器协议
- Python用zip函数同时遍历多个迭代器示例详解
- Python3之迭代器对象,函数,匿名函数
- Python高级函数之生成器和迭代器
- Python之函数(自定义函数,内置函数,装饰器,迭代器,生成器)
- python基础----迭代器、生成器、协程函数及应用(面向过程实例)
- python中迭代器和iter()函数