190329迭代器-生成器-三元运算-列表解析

一、迭代器

  1. 迭代器协议:对象必须提供一个next()方法,执行该方法要么返回迭代中的下一项,要么抛出一个Stoplteration异常终止迭代
  2. 可迭代对象:遵循迭代器协议,即可迭代对象,(可以被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']
posted @ 2019-04-05 00:01  生生不息.连绵不绝  阅读(123)  评论(0编辑  收藏  举报