生成器函式
總結
1.推導式特點:用一行迴圈判斷遍歷出一系列資料的方式
2.推導式在使用時,只能用for迴圈和判斷,而且判斷是能是單項判斷
3.練習:將列表中的字元變成小寫
lst = ["addd","ddddd","ddaa","sss"]
常規寫法:
lst_new =
for i in lst:
res= i.lower()
print(lst_new)
推導式寫法:
lst = [i.lower() for i in lst ]
print(lst)
1.enumerate(iterable,[start=0])
功能:列舉 ; 將索引號和iterable中的值,乙個乙個拿出來配對組成元組放入迭代器中
引數: iterable: 可迭代性資料 (常用:迭代器,容器型別資料,可迭代物件range)
start: 可以選擇開始的索引號(預設從0開始索引)
返回值:迭代器
2.zip(iterable, ... ...)
功能: 將多個iterable中的值,乙個乙個拿出來配對組成元組放入迭代器中
iterable: 可迭代性資料 (常用:迭代器,容器型別資料,可迭代物件range)
返回: 迭代器
特點:不能匹對的多餘值會被捨棄
1.生成器本質是迭代器,允許自定義邏輯的迭代器
2.迭代器和生成器區別:
迭代器本身是系統內建的.重寫不了.而生成器是使用者自定義的,可以重寫迭代邏輯
3.生成器可以用兩種方式建立:
(1)生成器表示式 (裡面是推導式,外面用圓括號)
(2)生成器函式 (用def定義,裡面含有yield)
1.yield 類似於 return
共同點在於:執行到這句話都會把值返回出去
不同點在於:yield每次返回時,會記住上次離開時執行的位置 , 下次在呼叫生成器 , 會從上次執行的位置往下走
而return直接終止函式,每次重頭呼叫
yield 6 和 yield(6) 2種寫法都可以 yield 6 更像 return 6 的寫法 推薦使用
2. send
# next和send區別:
next 只能取值
send 不但能取值,還能傳送值
# send注意點:
第乙個 send 不能給 yield 傳值 預設只能寫none
最後乙個yield 接受不到send的傳送值
3.無論是next 還是 send 都可以呼叫生成器裡面的資料
send 不但可以呼叫,還可以給yield 傳送值
生成器應用在大資料的場景中,按照需求依次取值,
切記不要直接迭代生成器所有資料
一旦資料量較大,類似於死迴圈
Python30期第二十三天課程總結
1.觸發時機 當物件被記憶體 的時候自動觸發 1.頁面執行完畢 所有變數 2.所有物件被del的時候 功能 物件使用完畢後資源 引數 乙個self接受物件 返回值 無 2.頁面執行完畢 所有變數 3.當乙個值,沒有任何變數指向或者說引用,這個值才會被真正的釋放1.觸發時機 使用print 物件 或者...
Oracle課程檔案,第十三天
配置可恢復性 ontrol files 控制檔案 parameter 引數 show 顯示 select name from v database 檢視當前的資料庫 控制檔案 sql show parameter control files sql select from v controlfile...
學習Python 第十三天
二叉樹 一,名詞 根邊 樹葉 葉子 沒有兒子 兄弟 具有相同父親的節點 祖父和孫子 路徑路徑的長 深度 從根到該點 高 從該點到葉子 祖先 後裔 真祖先 真後裔 二,樹的實現 class treenode def init self,data,firstchild,nextsibling self....