python學習總結

2021-09-01 13:33:23 字數 1559 閱讀 2524

生成器,用術語來說是生成器(generator)和帶yield的generator function.

但在介紹生成器之前,先來認識一下迭代器(iterator),迭代器表示的是乙個資料流,通過被 next(iterator) 呼叫獲取下乙個資料,因為我們並不知道這個資料流的長度,於是只有通過不斷地呼叫 next() 函式獲取資料,直到丟擲 stopiteration 異常。

迭代器的應用常見於迴圈的控制條件語句中,例如:

for element in

list

:pass

上面的**中的 list 會從乙個列表資料結構(列表是可迭代的,但和迭代器的區別是,沒有 next() 方法(iterable 和 iterator 的區別))轉變為迭代器(iterator),也就是說在執行for element in list: 的**時,實際上執行了 it = iter(list):**,用乙個迭代器 it 代表了原列表中資料的流。(並且,在for 中使用迭代器不會丟擲異常,原因是 for 隱藏了try…except 的細節)具體的轉換類似於這樣:

it =

iter

(list

)while

true

:try

: it.

next()

except stopiteration:

break

於是以上就是對迭代器的簡單介紹。

生成器:

函式加yield,可以參考廖教程的實現楊輝三角函式。**如下

# 每次執行到yield時暫停,然後再次呼叫時繼續。

defmyfunc()

:list=[

1]while

true

:yield

(list

)

length =

len(

list

)if length ==1:

list=[

1,1]

ls =[1

]

j =0while j <= length-2:

list

[j]+

list

[j+1])

j +=

1 1)

list

= ls

generator

# 用小括號則是生成器表示式

g =(i for i in

range(10

))# 用中括號則是列表表示式

l =[i for i in

range(10

)]

map函式返回的也是 generator, map函式把乙個函式對映在列表裡的每個值上。他的引數裡有函式,所以也就是高階函式。

並且因為返回的是乙個generator,所以常用list() 包裹上使得返回列表。

to be continued…

python學習總結

那我們先來認識一下python。python首先是一門計算機語言 是集編譯性和解釋性一身的語言。python目前在做科學計算中特別受歡迎,說到計算,我們不得不提matlab,就我個人而言,matlab,我已經接觸這麼語言4年多了,我也十分的偏愛它,可是matlab是收費的,相比而言,python是免...

Python 學習總結

資料型別 python 中的基本資料型別有 數字,字串,布林值以及空值 想使自己的 支援中文在python 的檔案頭加上 coding utf 8 python中的高階資料結構包括 list,tuple,dict和set list 有序集合,可以任意新增和刪除其中的元素 定義 list a b tu...

Python學習總結

當前使用python語言即使寫乙個for迴圈都要查資料,實屬不該。後續把學習的東西持續總結在這裡,讓自己印象更深刻一些。stata statb startc 這三行會當成乙個語句進行執行 this is a single line remark this is multiple lines rema...