推導式就是構建比較有規律的列表,生成器,字典等一種簡便的方式。
1、推導式
(1)列表推導式
<1> 普通迴圈: [變數 for迴圈]
print([i for i in range(10)])
<2> 篩選模式:[加工後的變數 for迴圈 加工條件]
print([i for i in range(10) if i % 2 ==0])
(2)集合推導式
<1> 普通迴圈:
print()
<2> 篩選模式:
print()
(3)字典推導式
<1> 普通迴圈:
print()
<2> 篩選:
print()
(4)生成器推導式
<1> 普通迴圈:(變數 for迴圈)
tu = (i for i in range(10))
<2> 篩選:(加工後的變數 for迴圈 加工條件)
# tu = (i for i in range(10) if i > 5)
資料型別 (pyhton3: range() | python2 :xrange()) 都是可迭代物件 __iter__()
檔案控制代碼是迭代器 __iter__() __next__()
2、生成器表示式和列表推導式的區別
(1)列表推導式比較耗記憶體,所有資料一次性載入到記憶體。而生成器表示式遵循迭代器協議,逐個產生元素。
(2)得到的值不一樣,列表推導式得到的是乙個列表.生成器表示式獲取的是乙個生成器
(3)列表推導式一目了然,生成器表示式只是乙個記憶體位址。
無論是生成器表示式,還是列表推導式,都只是python提供的乙個相對簡單的構造方式,因為使用推導式非常簡單,所以大多數都會為之著迷,這個一定要慎重,推導式只能構建相對複雜的並且有規律的物件,對於沒有什麼規律,而且巢狀層數比較多(for迴圈超過三層)這樣就不建議使用推導式構建。
生成器的惰性機制: 生成器只有在訪問的時候才取值,說白了.你找他要才給你值.不找他要.他是不會執行的.
python 推導 Python 推導式
python 語言有一種獨特的語法,它可以用最簡單的方式生成乙個列表 元組或字典,它們叫推導式。常見的推導式 列表推導式 字典推導式 集合推導式 列表推導式 列表推導式可以快速生成乙個列表,其語法格式為 x x for x in range 6 結果 0,1,4,9,16,25 相當於 l for ...
Python列表推導式,集合推導式,元組推導式
先定義乙個列表a a 1,2,3,4,5,6,7,8 1a 1,2,3,4,5,6,7,8 列表推導 d i 2 for i in a 集合推導 e 元組推導 f i 2 for i in a print type d print type e print type f 輸出 123 4567 89...
Python推導式(生成式)
推導式是從乙個或者多個迭代器快速簡潔的建立資料結構的一種方法。可以將迴圈和條件判斷相結合,從而避免語法冗長的 常見的列表推導式有以下兩種格式 expression for item in iterable 下面通過具體的 舉例說明列表推導式的應用 power list x x for x in ra...