迭代器说明&三元表达式
迭代器协议:一个对象必须提供next方法,执行该方法要么返回迭代中下一项,要么就引起一个StopLteration异常,以中指迭代。
迭代对象:对象内部定义一个__iter__()方法
for循环使用的迭代器的形式
str_1 = [1,2,3,4]
for i in str_1:
pring(i)
for的迭代方法如下:
1.iter_str = str_1.__iter__() 将str_1转换为一个迭代对象
2.iter_str.__next__()将迭代对象输出一个,但如果输出完成后会报错,但for循环会自动捕获这个异常进行处理,不会保存
yield在方法里可以使用多次,也可返回多个
三元表达式:
eg1:
name = 'jack'
res ='sb' if name=='jack' else '帅哥'
print(res)
eg2:
ll = ["鸡蛋%s"%i for i in range(10) if i >=5] #输出一个列表 print(ll)
列表比较占内存,所以将上面的列表转换成可迭代的对象放在内存中,节省空间。如鸡蛋&母鸡的关系
ll = ("鸡蛋%s"%i for i in range(10) if i >=5) #生成器表达式 print(ll)#输出为一个迭代器对象