迭代器说明&三元表达式


迭代器协议:一个对象必须提供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)#输出为一个迭代器对象