Python之生成器

一、生成器定义及作用

 

生成器优点:

 

二、三元运算

name = "wangdoudou"
res = "帅哥" if name == "wangdoudou" else "大帅哥"
print("使用三元运算结果是:", res)

 

三、列表解析

list_test = ['鸡蛋%s' % i for i in range(10)]
print("使用列表解析的结果是:", list_test)

list_test1 = ['鸡蛋%s' % i for i in range(10) if i > 5]
print("列表解析使用三元表达式的结果是:", list_test1)

 

四、生成器表达式

1、使用生成器来模拟老母鸡一次下一个蛋

temp = ('鸡蛋%s' % i for i in range(10))
print(temp.__next__())

2、生成器函数示例:(此处计算量过大,可换个小点的数值做测试)

def shnegchengqi_test():
    yield 1
    yield 2
    yield 3
sum(i for i in range(10000000000))

 

五、生成器的特性

 

 

优点二:有效提高代码可读性

# 不使用生成器
def xiadan():
    ret = []
    for i in range(100):
        ret.append("鸡蛋%s" % i)
    return ret


# 使用生成器
def xiadan():
    for i in range(100):
        yield "鸡蛋%s" % i

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章