欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python 推導表達式的幾種方法實現

 更新時間:2025年06月12日 11:21:53   作者:V1ncent-CC  
推導表達式是Python中一種遍歷序列并創(chuàng)建指定類型對象的方法,常用的推導表達式有:列表表達式、生成器表達式、字典表達式、集合表達式等,下面就來介紹一下

推導表達式(也稱為解析語法)是Python中一種遍歷序列并創(chuàng)建指定類型對象的方法,相對于使用for循環(huán)遍歷,推導表達式在語法上更加簡潔。常用的推導表達式有:列表表達式、生成器表達式、字典表達式、集合表達式等。

一、列表表達式

列表表達式是一種通過遍歷序列構造列表對象的方法。

語法是在中括號中一個表達式緊跟著1或多個for語句,以及0或多個if子句。Python會將表達式在for語句中依次循環(huán),并應用if語句過濾(如果有的話),最后將結果按順序填充到列表中。

在這里插入圖片描述

例如將range(10)中偶數的平方添加到列表中,常規(guī)for循環(huán)代碼如下:

l = []
for v in range(10):
    if v%2 == 0:
        l.append(v**2)

在這里插入圖片描述

下面是等價的列表表達式,依次將表達式、for語句、if語句寫在方括號中即可,相對于上面的代碼更加簡潔:

l = [v**2 for v in range(10) if v%2==0]

在這里插入圖片描述

如遇到嵌套循環(huán),只需要在表達式中按順序編寫for語句和if語句即可。在下面由元組組成的列表中,找出長度為4的元組,并將其中的偶數元素的平方添加到列表中,常規(guī)代碼如下:

lt = [(0,1,2), (3,4,5,6), (7,8,9)]
l = []
for t in lt:
    if len(t) == 4:
        for v in t:
            if v%2 == 0:
                l.append(v**2)

在這里插入圖片描述

換成列表表達式,只需按多層嵌套的順序依次填寫for和if子句即可:

l = [v**2 for t in lt for v in t if len(t)==4 if v%2==0]

在這里插入圖片描述

結果相同,但代碼量少了許多,如果有更多的嵌套,只需要按順序添加即可。

二、生成器表達式

生成器表達式的語法和列表表達式幾乎相同,只是括號由中括號換成小括號,這一變化的結果是返回對象不再是一個列表,而是一個生成器,你可以根據需要手動迭代取出結果。由于它不會像列表表達式那樣一次性生成所有的結果,因此在處理大對象時生成器表達式相比列表表達式則更節(jié)約內存。

在這里插入圖片描述

將列表表達式中的中括號替換為小括號,即是生成器表達式:

g = (v**2 for v in range(10) if v%2==0)

在這里插入圖片描述

可以用next函數或for循環(huán)取出結果:

next(g)
next(g)
for v in g:
    print(v)

在這里插入圖片描述

這里用next方法手動取出2個元素,然后用for循環(huán)取出剩下元素。

注意生成器對象完成一次迭代后就消耗掉了,再次嘗試獲取值時會得到StopIteration異常:

next(g)

在這里插入圖片描述

三、集合表達式

集合表達式和列表表達式的區(qū)別也是括號不同,集合表達式用花括號包圍,最后得到的結果是一個集合,注意空的{}創(chuàng)建的不是集合而是字典。

在這里插入圖片描述

只需要將列表表達式的[]替換為{}即變成集合表達式,對比下面列表表達式和集合表達式,注意集合會自動去重:

[v%3 for v in range(10)]
{v%3 for v in range(10)}

在這里插入圖片描述

四、字典表達式

字典表達式也是由花括號包圍,表達式部分需要由冒號分隔的2個表達式組成,2個表達式計算后的結果分別作為鍵:值填充到字典中。

在這里插入圖片描述

下面代碼將值作為鍵,平方作為值,創(chuàng)建一個字典:

{v:v**2 for v in range(5)}

在這里插入圖片描述

鍵和值部分也可以分開循環(huán):

{k:v for k,v in zip((1,2,3), ('a','b','c'))}

在這里插入圖片描述

以上即是Python中常用的表達式用法,靈活運用可以方便的建立各種對象。更多關于Python 推導表達式的資料請關注腳本之家其它相關文章!

相關文章

  • flask中主動拋出異常及統(tǒng)一異常處理代碼示例

    flask中主動拋出異常及統(tǒng)一異常處理代碼示例

    這篇文章主要介紹了flask中主動拋出異常及統(tǒng)一異常處理代碼示例,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • 這樣寫python注釋讓代碼更加的優(yōu)雅

    這樣寫python注釋讓代碼更加的優(yōu)雅

    任何編程語言都少不了注釋,Python當然也不例外,下面這篇文章主要給大家介紹了關于如何寫python注釋,才能讓你的代碼更加的優(yōu)雅,需要的朋友可以參考下
    2021-06-06
  • Python棧類實例分析

    Python棧類實例分析

    這篇文章主要介紹了Python棧類,實例分析了Python實現棧的入棧、出棧、移除、判定為空的相關技巧,需要的朋友可以參考下
    2015-06-06
  • Python腳本實現調用手機攝像頭

    Python腳本實現調用手機攝像頭

    這篇文章主要為大家詳細介紹了Python如何通過,腳本實現調用手機攝像頭,這樣就能隨時隨地用電腦偷偷看看男朋友都在干啥了,感興趣的小伙伴可以了解下
    2025-03-03
  • Python寫安全小工具之TCP全連接端口掃描器

    Python寫安全小工具之TCP全連接端口掃描器

    這篇文章主要介紹了Python寫安全小工具之TCP全連接端口掃描器,文章通過TCP connect來實現一個TCP全連接端口掃描器。具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • 一文教你將Visual Studio Code變成Python開發(fā)神器

    一文教你將Visual Studio Code變成Python開發(fā)神器

    Visual Studio Code 是一款功能強大、可擴展且輕量級的代碼編輯器,經過多年的發(fā)展,已經成為 Python 社區(qū)的首選代碼編輯器之一。本文將為大家介紹一下如何將Visual Studio Code變成Python開發(fā)神器,需要的可以參考一下
    2022-07-07
  • python處理DICOM并計算三維模型體積

    python處理DICOM并計算三維模型體積

    這篇文章主要為大家詳細介紹了python處理DICOM,并計算三維模型體積,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • Django使用HTTP協(xié)議向服務器傳參方式小結

    Django使用HTTP協(xié)議向服務器傳參方式小結

    本文主要介紹了Django使用HTTP協(xié)議向服務器傳參方式小結,用戶發(fā)送請求時攜帶的參數后端需要使用,而不同的發(fā)送參數的方式對應了不同的提取參數的方式,本文就詳細的介紹一下
    2021-08-08
  • maven沖突問題解決

    maven沖突問題解決

    這篇文章主要介紹了maven沖突問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • Python批量提取PDF文件中文本的腳本

    Python批量提取PDF文件中文本的腳本

    這篇文章主要為大家詳細介紹了Python批量提取PDF文件中文本的腳本,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03

最新評論