python3 推導式大總結

2022-07-24 17:54:19 字數 1953 閱讀 5269

推導式 --總結並引出 生成器推導式

##列表推導式

>>> a = [i for i in range(100) if

not(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: #

#想了一下 上邊的乙個乙個輸出太慢了 來乙個迴圈吧 把剩下的內容搞出來

print

(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...