Python基礎知識之推導式詳解
1、前言
Python推導式(Comprehension)是一種簡潔高效的代碼編寫方式,可以用一行代碼來創(chuàng)建列表、集合、字典等復雜數(shù)據(jù)結(jié)構(gòu)。
Python的推導式主要有以下三種類型:列表推導式、集合推導式和字典推導式。
Python 沒有元組推導式。元組是不可變的數(shù)據(jù)類型,它們通常用于存儲多個不同類型的元素。與列表和字典不同,元組沒有推導式。
雖然沒有元組推導式,但是可以通過生成器表達式生成元組。
2、列表推導式
列表推導式(List comprehension)是一種在Python中快速創(chuàng)建列表的方法。
它的基本語法為:
[ expression for item in iterable if condition ]
expression 是要生成的列表元素的表達式,item 是迭代變量,iterable 是一個可迭代對象,例如列表、元組、字符串、字典等,condition 是可選的條件表達式,用于篩選符合條件的元素。
我們可以用列表推導式來生成一個包含1到10的平方的列表:
squares = [x**2 for x in range(1, 11)] print(squares)
還可以在列表推導式中添加條件表達式,例如篩選出所有偶數(shù)的平方:
squares = [x**2 for x in range(1, 11) if x % 2 == 0] print(squares)
3、集合推導式
集合推導式(Set comprehension)是一種在Python中快速創(chuàng)建集合的方法。它的基本語法與列表推導式類似,只是用大括號 {} 來代替中括號 [],例如:
squares = {x**2 for x in range(1, 11)} print(squares)
4、字典推導式
字典推導式(Dictionary comprehension)是一種在Python中快速創(chuàng)建字典的方法。
它的基本語法為:
{key_expression: value_expression for expression in iterable if condition}
key_expression 是字典鍵的表達式,value_expression 是字典值的表達式,expression 是迭代變量,iterable 是一個可迭代對象,例如列表、元組、字符串、字典等,condition 是可選的條件表達式,用于篩選符合條件的元素。
我們可以用字典推導式來生成一個將數(shù)字轉(zhuǎn)換為其平方的字典:
squares = {x: x**2 for x in range(1, 11)} print(squares)
在字典推導式中也可以添加條件表達式,來實現(xiàn)篩選符合條件的鍵值對。例如,如果我們想要從一個字典中篩選出所有鍵是偶數(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)
我們使用了條件表達式 if key % 2 == 0 來判斷鍵是否為偶數(shù)。只有符合條件的鍵值對才會被添加到新的字典中。
5、元組推導式
Python 中并不存在元組推導式。元組是不可變的序列類型,它們通常是用來存儲不可變的數(shù)據(jù),例如一些常量或固定的配置信息。雖然你可以使用生成器表達式或 map 函數(shù)對元組中的元素進行處理,但是它們并不是元組推導式,因為它們返回的是生成器或迭代器對象,而不是元組對象。
雖然沒有元組推導式,但是可以通過生成器表達式生成元組,具體的實現(xiàn)方式如下所示:
a = (x for x in range(1,10)) # 生成器表達式 tuple(a) # 使用 tuple() 函數(shù)將生成器轉(zhuǎn)換為元組
首先通過生成器表達式 (x for x in range(1,10)) 創(chuàng)建了一個生成器對象 a,然后通過 tuple() 函數(shù)將其轉(zhuǎn)換為元組 (1, 2, 3, 4, 5, 6, 7, 8, 9),最終得到一個包含整數(shù) 1 到 9 的元組。
到此這篇關(guān)于Python基礎知識之推導式詳解的文章就介紹到這了,更多相關(guān)Python推導式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
odoo?為可編輯列表視圖字段搜索添加查詢過濾條件的詳細過程
Odoo 是基于 Python 寫的一系列開源商業(yè)應用程序套裝,前身是 OpenERP,這篇文章主要介紹了odoo?為可編輯列表視圖字段搜索添加查詢過濾條件,需要的朋友可以參考下2023-02-02基于MATLAB和Python實現(xiàn)MFCC特征參數(shù)提取
這篇文章主要介紹了基于MATLAB和Python實現(xiàn)MFCC特征參數(shù)提取,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-08-08解決json.decoder.JSONDecodeError: Expecting value:&n
這篇文章主要介紹了解決json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)錯誤,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-04-04Django REST framework 單元測試實例解析
這篇文章主要介紹了Django REST framework 單元測試實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-11-11Python批量解壓文件中出現(xiàn)中文亂碼的原因及解決方法
這篇文章主要給大家記一次Python批量解壓文件遇中文亂碼及解決過程,文中有詳細的圖解及代碼示例,具有一定的參考價值,需要的朋友可以參考下2023-08-08