一、迭代器
- 迭代器协议:对象必须提供一个next()方法,执行该方法要么返回迭代中的下一项,要么抛出一个Stoplteration异常终止迭代
- 可迭代对象:遵循迭代器协议,即可迭代对象,(可以被for循环的就是可迭代对象)
l = {1,2,3}
iter_l = l.__iter__() #将列表转换为迭代器
print(iter_l.__next__())
print(next(iter_l))
二、生成器
1、生成器函数
def f():
for i in range(10):
yield i
t = f()
print(t.__next__())
print(t.__next__())
print(t.__next__())
2、生成器表达式
xiadangongji = ("鸡蛋%s" %i for i in range(10))
print(xiadangongji.__next__()) #鸡蛋0
print(xiadangongji.__next__()) #鸡蛋1
三、三元表达式
age = 18
res = "未成年" if age < 18 else "已成年"
print(res)
四、列表解析
egg = ["鸡蛋%s" %i for i in range(10)]
print(egg) #['鸡蛋0', '鸡蛋1', '鸡蛋2', '鸡蛋3', '鸡蛋4', '鸡蛋5', '鸡蛋6', '鸡蛋7', '鸡蛋8', '鸡蛋9']
egg2 = ["鸡蛋%s" %i for i in range(10) if i > 5]
print(egg2) #['鸡蛋6', '鸡蛋7', '鸡蛋8', '鸡蛋9']