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

 

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