列表推导式:
当条件后再接条件时则意味着后面的条件实在前面条件里面,即是一个嵌套
但当条件里有else时,则格式为[表达式 if 条件 else 表达式 for 变量 in 列表名]
集合推导式:
与列表推导式差不多,就是括号变成了{},且会自动去除重复项
生成器(generator):
将符号[]换成符号()即将推导式变为生成器
生成器的作用,减少不必要的内存占用
调用时可使用生成器内置函数.next()
来一次产生一个结果
也可使用next(生成器)来产生结果
生成器的生成方法:
1.使用列表推导式
()
2.使用函数+yield
当函数加了yield()后就会变成一个生成器
输出结果:
用变量接收产生的结果
print(变量名.next())
或者
print(next(变量名))
以上的输出是无法向生成器内传值的,当需要传值时,则需要使用send()函数,不过send()函数第一次传值一定要传空值
生成器可用作协程,线程>进程>协程
迭代器:
生成器就是一种特殊的迭代器,迭代器包含生成器,还包含着像列表,元组,字典等类型的非迭代器类型的类型,但是能用next()方法调用并依次取值,可以使用iter(list or tuple or dict…)函数将列表或其他的转换为迭代器类型