#1、列表生成式,可以在前邊加入表示式或者函式# a = [x*2 for x in range(10)]
# print(a)
## def f(n):
# return n*n*n
# b = [f(x) for x in range(10)]
# print(b)
#2、a.生成器,每次使用得時候才會計算,每次只能取下乙個而不能跳躍取值.生成器就是乙個可以迭代得物件
#下邊得i取值得是接著上邊一起取得,由於上邊已經取完了所以下邊就沒有了
#在迴圈中,i這個變數每次只引用乙個值,所以只有乙個值是占用記憶體,前面得引用都消失
#在迴圈中,最後乙個變數時,會自己捕獲到異常,從而自動停止
# a = (x*2 for x in range(3))
# print(type(a)) ## print(next(a))
# print(next(a))
# print(next(a))
# #print(next(a)) #stopiteration
# for i in a:
# print(i)
#b.迭代器得兩種生成方式
# a = (x*2 for x in range(10))
#yield關鍵字,在這個關鍵字相當於return方法,不同之處是,呼叫next()時,在執行到這裡得時候會儲存函式得狀態
#下次繼續從該狀態執行下去
# def foo():
# print('no1')
# yield 1
# print('no2')
# yield 2
## s = foo()
# print(s) #這裡得s就是乙個生成器,直接執行得時候是不會列印出來得,呼叫next(s)方法得時候才會執行
# next(s) #執行生成器,返回第乙個生成器得值
# next(s)
# print(next(s))
# def f(max):
# n, before, after = 0, 0, 1
# while(ns = iter(t1)
print(next(s))
print(next(s))
列表生成式 生成器 迭代器
列表生成式 可以直接在列表裡進行運算 生成器 一邊迴圈一邊計算的機制,稱為生成器 generator 就是生成乙個不執行的函式或者列表,即資料流 第二句 生成器與列表的區別 生成器你不知道長度,就是乙個資料流 list dict str你知道長度 迭代器 可以被next 函式呼叫並不斷返回下乙個值的...
Python 列表生成式 生成器 迭代器
常見的列表生成方式 1.list list range 1 5 1 2,3 4 2.for迴圈 l for i in range 1 5 l 1 2,3 4 3.列表生成式 在列表生成時加入限制判斷條件 例 1,2,3,4 x for x in range 1 5 可以新增限制條件 2.4 x fo...
迭代器生成器生成式
器 工具 迭代 是乙個重複的過程,但每次重複都是基於上一次的結果而來的 迭代器 就是一種不依賴於索引的取值工具 特性 1.是一種通用的迭代取值方案 2.惰性計算,節省記憶體 對於序列型別 str,list,tuple可以依賴索引來迭代取值 對於dict,set,檔案 python必須為我們提供一種不...