国产睡熟迷奷白丝护士系列精品,中文色字幕网站,免费h网站在线观看的,亚洲开心激情在线

      <sup id="hb9fh"></sup>
          1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

            手機站
            千鋒教育

            千鋒學(xué)習站 | 隨時隨地免費學(xué)

            千鋒教育

            掃一掃進入千鋒手機站

            領(lǐng)取全套視頻
            千鋒教育

            關(guān)注千鋒學(xué)習站小程序
            隨時隨地免費學(xué)習課程

            當前位置:首頁  >  技術(shù)干貨  > Python生成表達式和列表解析

            Python生成表達式和列表解析

            來源:千鋒教育
            發(fā)布人:xqq
            時間: 2023-11-07 18:25:35 1699352735

            生成器表達式(Generatorexpression)和列表解析(ListComprehension)

            絕大多數(shù)情況下,遍歷一個集合都是為了對元素應(yīng)用某個動作或是進行篩選。如果看過本文的第二部分,你應(yīng)該還記得有內(nèi)建函數(shù)map和filter提供了這些功能,但Python仍然為這些操作提供了語言級的支持。

            (x+1forxinlst)#生成器表達式,返回迭代器。外部的括號可在用于參數(shù)時省略。

            [x+1forxinlst]#列表解析,返回list

            如你所見,生成器表達式和列表解析(注:這里的翻譯有很多種,比如列表展開、列表推導(dǎo)等等,指的是同一個意思)的區(qū)別很小,所以人們提到這個特性時,簡單起見往往只描述成列表解析。然而由于返回迭代器時,并不是在一開始就計算所有的元素,這樣能得到更多的靈活性并且可以避開很多不必要的計算,所以除非你明確希望返回列表,否則應(yīng)該始終使用生成器表達式。接下來的文字里我就不區(qū)分這兩種形式了:)

            你也可以為列表解析提供if子句進行篩選:

            1(x+1forxinlstifx!=0)

            或者提供多條for子句進行嵌套循環(huán),嵌套次序就是for子句的順序:

            1((x,y)forxinrange(3)foryinrange(x))

            列表解析就是鮮明的Pythonic。我常遇到兩個使用列表解析的問題,本應(yīng)歸屬于最佳實踐,但這兩個問題非常典型,所以不妨在這里提一下:

            第一個問題是,因為對元素應(yīng)用的動作太復(fù)雜,不能用一個表達式寫出來,所以不使用列表解析。這是典型的思想沒有轉(zhuǎn)變的例子,如果我們將動作封裝成函數(shù),那不就是一個表達式了么?

            第二個問題是,因為if子句里的條件需要計算,同時結(jié)果也需要進行同樣的計算,不希望計算兩遍,就像這樣:

            1(x.doSomething()forxinlstifx.doSomething()>0)

            這樣寫確實很糟糕,但組合一下列表解析即可解決:

            1(xforxin(y.doSomething()foryinlst)ifx>0)

            內(nèi)部的列表解析變量其實也可以用x,但為清晰起見我們改成了y?;蛘吒宄?,可以寫成兩個表達式:

            tmp=(x.doSomething()forxinlst)

            (xforxintmpifx>0)

            列表解析可以替代絕大多數(shù)需要用到map和filter的場合,可能正因為此,著名的靜態(tài)檢查工具pylint將map和filter的使用列為了警告。

            以上內(nèi)容為大家介紹了Python生成表達式和列表解析,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機構(gòu):千鋒教育。

            聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
            10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
            請您保持通訊暢通,專屬學(xué)習老師24小時內(nèi)將與您1V1溝通
            免費領(lǐng)取
            今日已有369人領(lǐng)取成功
            劉同學(xué) 138****2860 剛剛成功領(lǐng)取
            王同學(xué) 131****2015 剛剛成功領(lǐng)取
            張同學(xué) 133****4652 剛剛成功領(lǐng)取
            李同學(xué) 135****8607 剛剛成功領(lǐng)取
            楊同學(xué) 132****5667 剛剛成功領(lǐng)取
            岳同學(xué) 134****6652 剛剛成功領(lǐng)取
            梁同學(xué) 157****2950 剛剛成功領(lǐng)取
            劉同學(xué) 189****1015 剛剛成功領(lǐng)取
            張同學(xué) 155****4678 剛剛成功領(lǐng)取
            鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
            董同學(xué) 138****2867 剛剛成功領(lǐng)取
            周同學(xué) 136****3602 剛剛成功領(lǐng)取
            相關(guān)推薦HOT