-
推导式可以简化代码,推导式有列表推导式,集合推导式和字典推导式
列表推导式 表示从1到10的列表 li = [i for i in range(1,11)] print(li) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 可以加判断 li = [i for i in range(1,11) if i > 5] print(li) [6, 7, 8, 9, 10] 也可以结合三目运算 li = [i * 10 if i % 2 == 0 else i for i in range(1,11) if i > 5] print(li) [60, 7, 80, 9, 100] 集合推导式 类似于列表推导式 se = {i for i in range(1,11)} print(se) {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} 加判断 se = {i for i in range(1,11) if i > 8} print(se) {9, 10} 结合三目运算 se = {i * 10 if i % 2 == 0 else i for i in range(1,11) if i > 8} print(se) {9, 100} 字典推导式 li = ['a','b','c','d','e','f'] i表示key j表示value dic = {i:j for i,j in enumerate(li)} print(dic) {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f'}
-
迭代器,可以循环遍历可迭代对象
li = ['a', 'b', 'c', 'd'] iter将li变成迭代器 li2 = iter(li) next遍历, 一次只能遍历一个 print(next(li2)) print(next(li2)) print(next(li2)) a b c 迭代器里面有iter和next方法,可迭代对象里面只用iter for实现的原理 li = [1,2,3,4,5,6] li2 = iter(li) while True: try: var = next(li2) print(var) //如果捕捉到迭代完成,就跳出循环 except StopIteration: break;
-
生成器 其实也是一个迭代器
将列表推导式到[]改成()变成了生成器 li = (i for i in range(1,11)) print(next(li)) print(next(li)) print(next(li)) 1 2 3 函数里面加yield变成生成器 def func(): print('这是1') print('这是2') yield 1 print('这是3') print('这是4') yield 2 print('这是5') print('这是6') 当执行一次next时,到函数中的yield会暂停,等待下次next a = func() print(next(a)) print(next(a)) 这是1 这是2 1 这是3 这是4 2
-
包和模块
模块是一个封装了某些方法的文件,可以导入进来直接用 包相当于一个文件夹,里面装了一些模块 导入包或模块的几种方法 import ttt import bao from bao import filepy
python推导式,迭代器,生成器以及模块和包
最新推荐文章于 2020-07-06 10:10:59 发布