python編程中簡潔優(yōu)雅的推導(dǎo)式示例詳解
Python語言有一種獨(dú)特的推導(dǎo)式語法,相當(dāng)于語法糖的存在,可以幫助你在某些場(chǎng)合寫出較為精簡酷炫的代碼。但沒有它,也不會(huì)有太多影響。Python語言有幾種不同類型的推導(dǎo)式。
1. 列表推導(dǎo)式
列表推導(dǎo)式是一種快速生成列表的方式。其形式是用方括號(hào)括起來的一段語句,如下例子所示:
lis = [x * x for x in range(1, 10)] print(lis)
輸出
[1, 4, 9, 16, 25, 36, 49, 64, 81]
列表推導(dǎo)式要這么理解,首先執(zhí)行for循環(huán),對(duì)于每一個(gè)x,代入x*x中進(jìn)行運(yùn)算,將結(jié)果逐一添加到一個(gè)新列表內(nèi),循環(huán)結(jié)束,得到最終列表。它相當(dāng)于下面的代碼:
lis = []
for i in range(1, 10):
lis.append(i*i)
print(lis)
輸出
[1, 4, 9, 16, 25, 36, 49, 64, 81]
列表推導(dǎo)式為我們提供了一種在一行內(nèi)實(shí)現(xiàn)較為復(fù)雜邏輯的生成列表的方法。其核心語法是用中括號(hào)[]將生成邏輯封裝起來。
列表推導(dǎo)式有多重用法:
增加條件語句
lis = [x * x for x in range(1, 11) if x % 2 == 0]
輸出
[4, 16, 36, 64, 100]
多重循環(huán)
lis = [a + b for a in '123' for b in 'abc']
輸出
['1a', '1b', '1c', '2a', '2b', '2c', '3a', '3b', '3c']
更多用法
dic = {"name": "mumu", "age": "18"}
a = [k+":"+v for k, v in dic.items()]
print(a) # ['name:mumu', 'age:18']
2. 字典推導(dǎo)式
dic = {x: x**2 for x in (2, 4, 6)}
print(dic)
print(type(dic))
注意:x: x**2的寫法,中間的冒號(hào),表示左邊的key右邊的value。
輸出:
{2: 4, 4: 16, 6: 36}
<class 'dict'>
3. 集合推導(dǎo)式
a = {x for x in 'abracadabra' if x not in 'abc'}
print(a)
print(type(a))
輸出:
{'r', 'd'}
<class 'set'>
4. 元組推導(dǎo)式
沒有元組推導(dǎo)式
tup = (x for x in range(9)) print(tup) print(type(tup))
<generator object <genexpr> at 0x0000013DB865AA40> <class 'generator'>
要通過類似方法生成元組,需要顯式調(diào)用元組的類型轉(zhuǎn)換函數(shù)tuple(),如下所示:
tup = tuple(x for x in range(9)) print(tup) print(type(tup))
輸出:
(0, 1, 2, 3, 4, 5, 6, 7, 8) <class 'tuple'>
以上就是python編程中簡潔優(yōu)雅的推導(dǎo)式示例詳解的詳細(xì)內(nèi)容,更多關(guān)于python編程推導(dǎo)式的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python實(shí)現(xiàn)PolynomialFeatures多項(xiàng)式的方法
這篇文章主要介紹了python實(shí)現(xiàn)PolynomialFeatures多項(xiàng)式的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
對(duì)python程序內(nèi)存泄漏調(diào)試的記錄
今天小編就為大家分享一篇對(duì)python程序內(nèi)存泄漏調(diào)試的記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06
解決Shell執(zhí)行python文件,傳參空格引起的問題
今天小編就為大家分享一篇解決Shell執(zhí)行python文件,傳參空格引起的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-10-10
python線程定時(shí)器Timer實(shí)現(xiàn)原理解析
這篇文章主要介紹了python線程定時(shí)器Timer實(shí)現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
python正則表達(dá)式re.search()的基本使用教程
正則表達(dá)式是我們?nèi)粘i_發(fā)中必然會(huì)遇到的,下面這篇文章主要介紹了python正則表達(dá)式re.search()的基本使用教程,需要的朋友可以參考下2021-05-05
一文詳解Python如何處理函數(shù)調(diào)用超時(shí)問題
在Python開發(fā)中,我們經(jīng)常會(huì)遇到需要控制函數(shù)執(zhí)行時(shí)間的場(chǎng)景,本文將深入探討Python中處理函數(shù)調(diào)用超時(shí)的幾種方法,感興趣的小伙伴可以參考一下2025-04-04
Python虛擬機(jī)中描述器的王炸應(yīng)用分享
本篇文章給大家介紹一下描述器在?python?語言當(dāng)中有哪些應(yīng)用,主要介紹如何使用?python?語言實(shí)現(xiàn)?python?內(nèi)置的?proterty?、staticmethod?和?class?method,需要的可以參考一下2023-05-05

