推導式(又稱解析式) 是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...