**:
python語言有一種獨特的推導式語法,相當於語法糖的存在,可以幫你在某些場合寫出比較精簡炫酷的**。但沒有它,也不會有太多的影響。python語言有幾種不同型別的推導式,下面逐一介紹:
列表推導式是一種快速生產列表的方式。其形式是用方括號括起來的一段語句,如下例子所示:
list
=[x*x for x in
range(1
,10)]
print
(list)-
----
----
----
----
----
----
----
----
-[1,
4,9,
16,25,
36,49,
64,81]
列表推導式要這麼理解,首先執行for迴圈,對於每乙個x,帶入x*x中進行運算,將運算結果逐一新增到乙個新列表內,迴圈結束,得到最終列表。它相當於下面的**:
list=[
]for i in
range(1
,10):
list
print
(list
)
列表推導式為我們提供了一種在一行內實現較為複雜邏輯的生成列表的方法。其核心語法式用中括號將生成邏輯封裝起來。
列表推導式有多種花樣玩法:
>>
>
[x*x for x in
range(1
,10)if x%2==
0][4
,16,36
,64]
通過在後面新增if子句,對x進行過濾。
>>
>
[a+b for a in
'123'
for b in
'abc'][
'1a'
,'1b'
,'1c'
,'2a'
,'2b'
,'2c'
,'3a'
,'3b'
,'3c'
]
>>
> dic =
>>
> a =
[k+":"
+v for k,v in dic.items()]
>>
> a
['k1:v1'
,'k2:v2'
]
既然使用中括號可以編寫列表推導式,那麼使用大括號呢?你猜對了,使用大括號可以製造字典推導式。
dic =
print
(dic)--
----
----
----
----
----
----
----
----
大括號除了能用作字典推導式,還可以用作集合推導式,兩者僅在細微處有差別。
a =--
----
----
----
----
----
----
----
----
----
沒有元祖推導式。圓括號在python中被用作生成器的語法了。
tup =
(x for x in
range(9
))print
(tup)
print
(type
(tup))-
----
----
----
----
----
----
--- at 0x107ea8f90
>
<
class
'generator'
>
要通過類似方法生成元組,需要顯示呼叫元組的型別轉換函式tuple(),如下所示:
tup =
tuple
(x for x in
range(9
))print
(tup)
print
(type
(tup))-
----
----
----
----
----
----
----
----
-(0,
1,2,
3,4,
5,6,
7,8)
python 推導 Python 推導式
python 語言有一種獨特的語法,它可以用最簡單的方式生成乙個列表 元組或字典,它們叫推導式。常見的推導式 列表推導式 字典推導式 集合推導式 列表推導式 列表推導式可以快速生成乙個列表,其語法格式為 x x for x in range 6 結果 0,1,4,9,16,25 相當於 l for ...
python的推導式
python的推導式 multiples for i in range 30 if i 3is 0 print multiples 執行結果 0,3,6,9,12,15,18,21,24,27 這段 從0 29這個序列中,生成乙個3的倍數的列表。如果用推導式寫這段 multiples i for i...
python的推導式
1 python的推導式 推導式是從乙個或多個迭代器快速簡潔的建立資料結構的一種辦法,它可以將迴圈和條件判斷結合,從而可以避免語法冗長的 1 按照我們學的最基礎的方法,輸出乙個列表 my list 0 1 2 3 4 5 print my list 輸出 0,1,2,3,4,5 2 通過for迴圈方...