python推導式pythonic必備

2021-08-15 18:47:17 字數 1564 閱讀 6258

推導式(又稱解析式) 是python的⼀種獨有特性。

推導式是可以從⼀個資料序列構建另⼀個新的資料序列的結構體。 共有三種推導:

列表推導式 (list comprehensions)

列表推導式(又稱列表解析式) 提供了⼀種簡明扼要的方法來建立列表。

它的結構是在乙個中括號裡包含乙個表示式, 然後是乙個for語句, 然後是0個或多個for或者if語句。 那個表示式可以是任意的, 意思是你可以在列表中放入任意型別的物件。 返回結果將是⼀個新的列表, 在這個以if和for語句為上下⽂的表示式運⾏完成之後產生

規範

variable = [x for x in list if something == 2]

這⾥是另外⼀個簡明例子:

multiples =

[i for i in

range(30

)if i %3is

0]print

(multiples)

# output: [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

列表推導式在有些情況下超讚, 特別是當你需要使⽤for迴圈來生成乙個新列表。 舉個例子, 通常一般人會這樣做:

squared =

for x in

range(10

):2)

你可以使⽤列表推導式來簡化它:

squared = [x**2 for x in range(10)]

字典推導式(dict comprehensions)

字典推導式,使用的場景比較少,但是有一點是超級贊的!

**問題:**遇到字典的鍵值對互換,你會怎麼操作?

使用for迴圈?

mydict=

mydict_new=

for key,val in mydict.items():

mydict_new[val]

=key

使用zip?

mydict=

newdict=

dict

(zip

(mydict.values(

),mydict.keys())

)

say no,你應該使用字典推導式!

mydict=

newdict=

ornewdict=

dict

([val,key]

for key,val in mydict.items(

))

集合推導式(set comprehensions)

至於集合推導式,跟列表推導式大同小異,不過在去重方面是set的強項

舉個栗子:

squared =

print

(squared)

# output:

python 推導 Python 推導式

python 語言有一種獨特的語法,它可以用最簡單的方式生成乙個列表 元組或字典,它們叫推導式。常見的推導式 列表推導式 字典推導式 集合推導式 列表推導式 列表推導式可以快速生成乙個列表,其語法格式為 x x for x in range 6 結果 0,1,4,9,16,25 相當於 l for ...

python 推導式 Python 入門之 推導式

推導式就是構建比較有規律的列表,生成器,字典等一種簡便的方式。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 集...

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