Python基礎(chǔ)知識(shí)之推導(dǎo)式詳解
1、前言
Python推導(dǎo)式(Comprehension)是一種簡(jiǎn)潔高效的代碼編寫(xiě)方式,可以用一行代碼來(lái)創(chuàng)建列表、集合、字典等復(fù)雜數(shù)據(jù)結(jié)構(gòu)。
Python的推導(dǎo)式主要有以下三種類(lèi)型:列表推導(dǎo)式、集合推導(dǎo)式和字典推導(dǎo)式。
Python 沒(méi)有元組推導(dǎo)式。元組是不可變的數(shù)據(jù)類(lèi)型,它們通常用于存儲(chǔ)多個(gè)不同類(lèi)型的元素。與列表和字典不同,元組沒(méi)有推導(dǎo)式。
雖然沒(méi)有元組推導(dǎo)式,但是可以通過(guò)生成器表達(dá)式生成元組。
2、列表推導(dǎo)式
列表推導(dǎo)式(List comprehension)是一種在Python中快速創(chuàng)建列表的方法。
它的基本語(yǔ)法為:
[ expression for item in iterable if condition ]
expression 是要生成的列表元素的表達(dá)式,item 是迭代變量,iterable 是一個(gè)可迭代對(duì)象,例如列表、元組、字符串、字典等,condition 是可選的條件表達(dá)式,用于篩選符合條件的元素。
我們可以用列表推導(dǎo)式來(lái)生成一個(gè)包含1到10的平方的列表:
squares = [x**2 for x in range(1, 11)] print(squares)
還可以在列表推導(dǎo)式中添加條件表達(dá)式,例如篩選出所有偶數(shù)的平方:
squares = [x**2 for x in range(1, 11) if x % 2 == 0] print(squares)
3、集合推導(dǎo)式
集合推導(dǎo)式(Set comprehension)是一種在Python中快速創(chuàng)建集合的方法。它的基本語(yǔ)法與列表推導(dǎo)式類(lèi)似,只是用大括號(hào) {} 來(lái)代替中括號(hào) [],例如:
squares = {x**2 for x in range(1, 11)} print(squares)
4、字典推導(dǎo)式
字典推導(dǎo)式(Dictionary comprehension)是一種在Python中快速創(chuàng)建字典的方法。
它的基本語(yǔ)法為:
{key_expression: value_expression for expression in iterable if condition}
key_expression 是字典鍵的表達(dá)式,value_expression 是字典值的表達(dá)式,expression 是迭代變量,iterable 是一個(gè)可迭代對(duì)象,例如列表、元組、字符串、字典等,condition 是可選的條件表達(dá)式,用于篩選符合條件的元素。
我們可以用字典推導(dǎo)式來(lái)生成一個(gè)將數(shù)字轉(zhuǎn)換為其平方的字典:
squares = {x: x**2 for x in range(1, 11)} print(squares)
在字典推導(dǎo)式中也可以添加條件表達(dá)式,來(lái)實(shí)現(xiàn)篩選符合條件的鍵值對(duì)。例如,如果我們想要從一個(gè)字典中篩選出所有鍵是偶數(shù)的鍵值對(duì),我們可以這樣實(shí)現(xiàn):
original_dict = {1: 'apple', 2: 'banana', 3: 'orange', 4: 'pear'} new_dict = {key: value for key, value in original_dict.items() if key % 2 == 0} print(new_dict)
我們使用了條件表達(dá)式 if key % 2 == 0 來(lái)判斷鍵是否為偶數(shù)。只有符合條件的鍵值對(duì)才會(huì)被添加到新的字典中。
5、元組推導(dǎo)式
Python 中并不存在元組推導(dǎo)式。元組是不可變的序列類(lèi)型,它們通常是用來(lái)存儲(chǔ)不可變的數(shù)據(jù),例如一些常量或固定的配置信息。雖然你可以使用生成器表達(dá)式或 map 函數(shù)對(duì)元組中的元素進(jìn)行處理,但是它們并不是元組推導(dǎo)式,因?yàn)樗鼈兎祷氐氖巧善骰虻鲗?duì)象,而不是元組對(duì)象。
雖然沒(méi)有元組推導(dǎo)式,但是可以通過(guò)生成器表達(dá)式生成元組,具體的實(shí)現(xiàn)方式如下所示:
a = (x for x in range(1,10)) # 生成器表達(dá)式 tuple(a) # 使用 tuple() 函數(shù)將生成器轉(zhuǎn)換為元組
首先通過(guò)生成器表達(dá)式 (x for x in range(1,10)) 創(chuàng)建了一個(gè)生成器對(duì)象 a,然后通過(guò) tuple() 函數(shù)將其轉(zhuǎn)換為元組 (1, 2, 3, 4, 5, 6, 7, 8, 9),最終得到一個(gè)包含整數(shù) 1 到 9 的元組。
到此這篇關(guān)于Python基礎(chǔ)知識(shí)之推導(dǎo)式詳解的文章就介紹到這了,更多相關(guān)Python推導(dǎo)式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python小知識(shí)之幾種推導(dǎo)式用法示例
- Python列表推導(dǎo)式詳解
- Python進(jìn)階之列表推導(dǎo)與生成器表達(dá)式詳解
- python基礎(chǔ)操作列表推導(dǎo)式
- Python列表推導(dǎo)式的基本操作詳解
- Python使用列表推導(dǎo)式快速生成列表
- Python的列表推導(dǎo)式實(shí)例詳細(xì)解析
- Python特性之列表推導(dǎo)式和生成器表達(dá)式詳解
- python實(shí)現(xiàn)列表推導(dǎo)式與生成器
- Python中列表乘法和列表推導(dǎo)式的區(qū)別舉例詳解
- Python 推導(dǎo)表達(dá)式的幾種方法實(shí)現(xiàn)
相關(guān)文章
python定時(shí)檢查啟動(dòng)某個(gè)exe程序適合檢測(cè)exe是否掛了
定時(shí)檢查啟動(dòng)某個(gè)exe程序這種情況下適合檢測(cè)某個(gè)exe程序是否掛了,感興趣的朋友可以了解下,希望本文對(duì)你有所幫助2013-01-01Python基礎(chǔ)知識(shí)+結(jié)構(gòu)+數(shù)據(jù)類(lèi)型
這篇文章主要介紹了Python基礎(chǔ)知識(shí)+結(jié)構(gòu)+數(shù)據(jù)類(lèi)型,文章基于python基礎(chǔ)知識(shí)圍繞主題展開(kāi)詳細(xì)內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-05-05python的語(yǔ)句結(jié)構(gòu)你真的了解嗎
這篇文章主要為大家詳細(xì)介紹了python的語(yǔ)句結(jié)構(gòu),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-02-02Python實(shí)現(xiàn)抓取HTML網(wǎng)頁(yè)并以PDF文件形式保存的方法
這篇文章主要介紹了Python實(shí)現(xiàn)抓取HTML網(wǎng)頁(yè)并以PDF文件形式保存的方法,結(jié)合實(shí)例形式分析了PyPDF2模塊的安裝及Python抓取HTML頁(yè)面并基于PyPDF2模塊生成pdf文件的相關(guān)操作技巧,需要的朋友可以參考下2018-05-05python高級(jí)搜索實(shí)現(xiàn)高效搜索GitHub資源
這篇文章主要為大家介紹了python高級(jí)搜索來(lái)高效搜索GitHub,從而高效獲取所需資源,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11python實(shí)現(xiàn)自動(dòng)登錄人人網(wǎng)并采集信息的方法
這篇文章主要介紹了python實(shí)現(xiàn)自動(dòng)登錄人人網(wǎng)并采集信息的方法,涉及Python模擬登陸及正則匹配的相關(guān)技巧,需要的朋友可以參考下2015-06-06YOLOv5部署到web端詳細(xì)過(guò)程(flask+js簡(jiǎn)單易懂)
YOLOv5是一個(gè)目標(biāo)檢測(cè)模型,Flask是一個(gè)Python的Web框架,下面這篇文章主要給大家介紹了關(guān)于YOLOv5部署到web端(flask+js簡(jiǎn)單易懂)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04python自動(dòng)12306搶票軟件實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了python自動(dòng)12306搶票軟件的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02Keras搭建孿生神經(jīng)網(wǎng)絡(luò)Siamese?network比較圖片相似性
這篇文章主要為大家介紹了Keras搭建孿生神經(jīng)網(wǎng)絡(luò)Siamese?network比較圖片相似性,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Python實(shí)現(xiàn)獲取郵箱內(nèi)容并解析的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)獲取郵箱內(nèi)容并解析的方法,結(jié)合完整實(shí)例形式分析了Python登陸pop3服務(wù)器并解析獲取郵箱內(nèi)容相關(guān)操作技巧,需要的朋友可以參考下2018-06-06