推導式 --總結並引出 生成器推導式
##列表推導式
>>> a = [i for i in range(100) ifnot(i%2) and i%3] #
#注意列表是中括號 三項內容 變數 迴圈體 判斷條件
>>> a #
輸出為符合判斷條件的結果 100以內能被2整除的數字
[2, 4, 8, 10, 14, 16, 20, 22, 26, 28, 32, 34, 38, 40, 44, 46, 50, 52, 56, 58, 62, 64, 68, 70, 74, 76, 80, 82, 86, 88, 92, 94, 98]
>>>
##字典推導式
>>> b = ##字典推導式注意 那個獨特的 冒號 ':' 三項內容 變數 條件 迴圈體
>>> b #
#和列表推導式不一樣的就是輸出的結果,如果判斷條件成立 輸出就是true 否則輸出false
>>>
##集合推導式
>>> c = ##集合推導式要注意的是 他和字典推導式的區別和聯絡 練習是 外部都是用的中括號的 不同就很明顯了 兩項內容 變數 迴圈體
>>> c #
#輸出內容 為本例中的列表的非重複輸出
>>>
'''集合(set)是乙個無序不重複元素的序列。
它的主要作用如下:
去重,把乙個列表變成集合,就自動去重了
關係測試,測試兩組資料之前的交集、差集、並集等關係
set和dict類似,也是一組key的集合,但不儲存value。由於key不能重複,所以,在set中,沒有重複的key
可以使用大括號 或者 set() 函式建立集合,注意:建立乙個空集合必須用 set() 而不是 ,因為 是用來建立乙個空字典。''' --------這一句總結來自網友 @奮鬥中的鹹魚
###字串推導式 看看行不行
>>> d = "i for i in 'i love you!'
">>>d
"i for i in 'i love you!'"#
#我* 果然不可以 ,我們看到 這個雙括號中的字串 被原版的列印出來了 並沒有做任何和其他推導式那樣子的工作
>>>
###那麼還有什麼可以玩一下推導式那 ,是不是還有元組推導式沒有玩過 ,好吧 下面翻她的牌
>>> e = (i for i in range(10)) ###元組使用小括號括起來的
>>>e
at 0x00000000034305e8> #
##哎 怎回事,輸出有點不一樣啊,第乙個單詞好像叫做生成器的,對了,這個是生成器的推導式了,這裡就是引出這個傢伙的
>>> next(e) #
#是生成器就可以使用next()這個函式類檢視了
0>>>next(e)
1>>>next(e)
2>>>next(e)
3>>> for i in e: #
#想了一下 上邊的乙個乙個輸出太慢了 來乙個迴圈吧 把剩下的內容搞出來
(i)456
789>>>
#至此我們看到了原來元組是沒有推導式的,他的書寫格式原來是生成器的推導式,好吧記下來吧!元組原來和生成器還有這樣的私交啊!
##還有一句話要說,這裡我們找了生成器的推導式,那麼生成器還有乙個比較騷的操作 ,那就是生成器推導式如果作為乙個函式的引數時,他可以直接寫推導式而不用帶上自己的小括號裡(把衣服拔掉了 嘿嘿) 樣子就像下邊的
>>> sum((i for i in range(10)))45>>> sum(i for i in range(10))
45>>>
##這個操作就是上邊的對比了,去掉小括號吧(我養你)
感謝:小甲魚
python 三大推導式
推導式comprehensions 又稱解析式 是python的一種獨有特性。推導式是可以從乙個資料序列構建另乙個新的資料序列的結構體。共有三種推導,在python2和3中都有支援 1 使用生成list 基本格式 var out exp res for out exp in input list i...
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...