生成器:
生成器指的是生成器物件,可以由生成器表示式得到,也可以使用yield關鍵字得到乙個生成器函式,呼叫這個函式得到乙個生成器物件
生成器函式:
函式體中包含yield語句的函式,返回生成器物件,生成器物件是乙個可迭代物件,是乙個迭代器,是延遲計算,惰性求值的
例:
普通函式呼叫fn(),函式會立即執行完畢,但是生成器函式可以使用next函式多次執行,生成器函式等價於生成器表示式,只不過生成器函式可以更加的複雜
生成器應用:無限迴圈
處理遞迴問題:
協程coroutine:
生成器的高階用法,比程序,執行緒輕量級,是在使用者空間排程函式的一種實現,python3.5使用async、await關鍵字直接原生支援協程
協程排程器實現思路:
有2個生成器a、b,next(a)後,a執行到yield語句暫停,然後去執行next(b),b執行到yield語句也暫停,然後再次呼叫next(a),再呼叫next(b),周而復始,就實現了排程的效果,協程是一種非搶占式排程
yield from是python3.3出現的新的語法
yield from iterable是for item in iterable: yield item形式的語法糖
從可迭代隊象中乙個個拿元素:
等價於
(Python)矩陣轉化
曉萌最近在做乙個翻轉的應用,你可能也知道,其實是由乙個個的點組成的。於是,曉萌想先做乙個可以翻轉矩陣的程式,來解決他問題的核心部分。輸入第一行包括由空格分開的整數 m,n,t 0 n,m 200 m,n,t 0m 20 0 tt 的值為 0 0 或 1 1。其中 m m 和 n n 分別表示待處理矩...
python字元轉化
int x base 將x轉換為乙個整數 long x base 將x轉換為乙個長整數 float x 將x轉換到乙個浮點數 complex real imag 建立乙個複數 str x 將物件x轉換為字串 repr x 將物件x轉換為表示式字串 eval str 用來計算在字串中的有效python...
python字典進行大寫轉化 python基礎二
列表建立range 左含右不含 列表生成式 x i for i in range 10 extend 擴充套件,把1個東西裡所有元素追加 list.insert index,obj 插入 3.刪除list.remove obj 移除某個元素 list.pop index 1 移除元素並返回值,預設最...