python程式設計中簡潔優雅的推導式示例詳解

2022-09-24 20:57:11 字數 1340 閱讀 9633

目錄

python語言有一種獨特的推導式語法,相當於語法糖的存在,可以幫助你在某些場合寫出較為精簡酷炫的**。但沒有它,也不會有太多影響。python語言有幾種不同型別的推導式。

列表推導式是一種快速生成列表的方式。其形式是用方括號括起來的一段語句,如下例子所示:

lis = [x * x for x in range(1, 10)]

print(lis)

輸出[1, 4, 9, 16, 25, 36, 49, 64, 81]

列表推導式要這麼理解,首先執行for迴圈,對於每乙個x,代入x*x中進行運算,將結果逐一新增到乙個新列表內,迴圈結束,得到最終列表。它相當於下面的**:

lis =

for i in range(1, 10):

lis.append(i*i)

print(lis)

輸出[1, 4, 9, 16, 25, 36, 49, 64, 81]

列表推導式為我們提供了一種在一行內實現較為複雜邏輯的生成列表的方法。其核心語法是用中括號將生成邏輯封裝起來。

列表推導式有多重用法:

lis = [x * x for x in range(1, 11) if x % 2 == 0]

輸出[4, 16, 36, 64, 100]

lis = [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()]

print(a) # ['name:mumu', 'age:18']

dic =

print(dic)

print(type(dic))

注意:x: x**2的寫法,中間的冒號,表示左邊的key右邊的value。

輸出: 'dict'>

a =

pcboxusyprint(a)

print(type(a))

輸出:沒有元組推導式

tuppcboxusy = (x for x in range(9))

print(tup)

print(type(tup))

at 0x0000013db865aa40>

要通過類似方法生成元組,需要顯式呼叫元組的型別轉pcboxusy換函式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 需求 把list所有成員元素加倍。普通的方式 bag 1,2,3,4,5 for i in range len bag bag i bag i 2優雅的方式 bag 1,2,3,4,5 bag elem 2 for elem in bag 普通的方式 bag 1,2,3...

python 中if else的多種簡潔的寫法

因寫多了判斷語句,看著短短的 卻佔據來好幾行,於是便搜下if else簡潔的寫法,結果也是發現新大陸 4種 第1種 就是普通寫法 a,b,c 1,2,3 if a b c a else c b 例子2 a,b 1,2 if a b max a else max b print max max 第二種...

推薦乙個簡潔優雅的部落格系統,farbox

這是我用farbox搞的乙個部落格 特點 1 無資料庫,資料存在dropbox裡,需要自己註冊乙個dropbox帳號 3 語法支援markdown,提供跨平台文章編輯器 4 可繫結獨立網域名稱 5 支援部落格 其缺點也是有的,最大的乙個問題是不支援常見的伺服器指令碼語言,僅能用其提供的api進行開發...