<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          妙不可言!使用 Python 管道 Pipe 編寫(xiě)代碼如此優(yōu)雅!

          共 1793字,需瀏覽 4分鐘

           ·

          2021-11-13 18:33

          大家好,今天這篇文章我將詳細(xì)講解 Pipe 如何讓你的代碼更加簡(jiǎn)潔的方法,喜歡本文歡迎收藏學(xué)習(xí)、點(diǎn)贊支持,文末提供技術(shù)交流群,歡迎交流

          我們知道 map 和 filter 是兩種有效的 Python 方法來(lái)處理可迭代對(duì)象。 但是,如果你同時(shí)使用 map 和 filter,代碼可能看起來(lái)很混亂。8326988b5106d503ce70f7fb1f9ba834.webp如果你可以使用管道那不是更好了?像下面這樣的方式來(lái)處理。8581f755580af67ea59314a4d1cc24b3.webpPipe 庫(kù)可以做到這一點(diǎn)。

          什么是管道?

          Pipe 是一個(gè) Python 庫(kù),可讓你在 Python 中使用管道。 管道 (|) 將一種方法的結(jié)果傳遞給另一種方法。

          我喜歡 Pipe,因?yàn)樗刮业拇a將多個(gè)方法應(yīng)用于 Python 可迭代對(duì)象時(shí)看起來(lái)更簡(jiǎn)潔。由于 Pipe 只提供了幾個(gè)方法,所以學(xué)習(xí)Pipe也很容易。 在本文中,我將向你展示一些我認(rèn)為最有用的方法。

          要安裝Pipe,請(qǐng)輸入:

          pip?install?pipe

          Where:可迭代對(duì)象中的過(guò)濾元素

          與 SQL 類似,Pipe 的 where 方法也可用于過(guò)濾可迭代對(duì)象中的元素。e9ed52c3d5cab7c3fc7dcd47e2949de6.webp

          Select: 將函數(shù)應(yīng)用于可迭代對(duì)象

          select方法類似于map方法。 select 將方法應(yīng)用于可迭代的每個(gè)元素。

          在下面的代碼中,我使用 select 將列表中的每個(gè)元素乘以 2。8419050f7b6943a532af26f93d996da4.webp現(xiàn)在,你可能想知道:如果 map 和 filter 具有相同的功能,為什么我們需要 where 和 select 方法?

          這是因?yàn)槟憧梢允褂霉艿涝诹硪粋€(gè)方法之后插入一個(gè)方法。 因此,使用管道消除了嵌套的括號(hào)并使代碼更具可讀性。8581f755580af67ea59314a4d1cc24b3.webp

          展開(kāi)可迭代對(duì)象

          1、chain方法

          使用嵌套的可迭代對(duì)象可能會(huì)很痛苦。 幸運(yùn)的是,我們可以使用 chain 來(lái)鏈接一系列可迭代對(duì)象。8e2e0e02104cd4e9364b946bddf76b09.webp盡管應(yīng)用 chain ?可以使可迭代對(duì)象的嵌套較少,我們?nèi)匀恍枰粋€(gè)更強(qiáng)大的工具。 為了處理深度嵌套的列表,我們可以使用 traverse 代替。

          2、traverse:遞歸展開(kāi)可迭代對(duì)象

          traverse 方法可用于遞歸展開(kāi)可迭代對(duì)象。 你可以使用此方法將深度嵌套的列表轉(zhuǎn)換為平面列表。

          9142c8c07a483e56364de7c03969c0eb.webp讓我們將此方法與 select 方法集成以獲取字典的值并展平列表。509a07a677fe7fe70b672a63c793bd12.webp這樣處理是不是很酷?

          將列表中的元素分組

          有時(shí),使用特定函數(shù)對(duì)列表中的元素進(jìn)行分組可能很有用。 這可以通過(guò) groupby 方法輕松完成。

          為了看看這個(gè)方法是如何工作的,讓我們把一個(gè)數(shù)字列表變成一個(gè)字典,這個(gè)字典根據(jù)數(shù)字是偶數(shù)還是奇數(shù)來(lái)分組。74997387c5cd7874eb951036c07176bc.webp在上面的代碼中,我們使用 groupby 將數(shù)字分組為偶數(shù)組和奇數(shù)組。 應(yīng)用此方法后的輸出如下所示:

          [('Even',?0x7fbea8030550>),
          ?('Odd',?0x7fbea80309a0>)]

          接下來(lái),我們使用 select 將元組列表轉(zhuǎn)換為字典列表,其鍵是元組中的第一個(gè)元素,值是元組中的第二個(gè)元素。

          [{'Even':?[2,?4,?6,?8]},?{'Odd':?[1,?3,?5,?7,?9]}]

          為了只獲取大于 2 的值,我們可以在 select 方法中添加 where 方法:

          5c3f42bc9b0be19fd15b831403acc016.webp在這里插入圖片描述

          dedup 方法刪除列表中的重復(fù)項(xiàng)

          6a4d59f8b19e900238bbe6757542d1f8.webp這聽(tīng)起來(lái)可能并不有趣,因?yàn)?set 方法可以做同樣的事情。 但是,此方法更靈活,可以讓你獲取唯一元素。

          例如,你可以使用此方法獲取一個(gè)小于 5 的唯一元素和另一個(gè)大于或等于 5 的唯一元素。aad9c37e1ca45be69aede842f702a66b.webp現(xiàn)在,讓我們將此方法與 select 結(jié)合起來(lái),從哪里獲取具有重復(fù)鍵和 None 值的字典的值。72060689acc90d14cffd638235ac9d06.webp在上面的代碼中,我們:

          • 刪除具有相同名稱的項(xiàng)目
          • 獲取計(jì)數(shù)值
          • 只選擇整數(shù)值。

          在幾行代碼中,我們可以將多個(gè)方法應(yīng)用于可迭代對(duì)象,同時(shí)仍然可以保持代碼整潔,不是嗎?

          結(jié)論

          剛剛我們學(xué)習(xí)了如何使用管道來(lái)保持代碼簡(jiǎn)潔簡(jiǎn)潔, 我希望這篇文章能讓你了解到可迭代對(duì)象上的復(fù)雜操作其實(shí)只需要一行簡(jiǎn)單的代碼。

          參考鏈接:https://towardsdatascience.com/write-clean-python-code-using-pipes-1239a0f3abf5



          504b7d733dc7f0b9300529653bcc22f1.webp

          性能瓶頸在哪里?3 個(gè) Python 可視化工具搞定!


          一個(gè)都不少!數(shù)據(jù)分析中最有用的25個(gè) Matplotlib 圖


          Python處理CSV、JSON和XML數(shù)據(jù)的簡(jiǎn)便方法來(lái)了


          長(zhǎng)按或掃描下方二維碼,后臺(tái)回復(fù):加群,可申請(qǐng)入群。一定要備注:入群+地點(diǎn)+學(xué)習(xí)/公司。例如:入群+上海+復(fù)旦。


          感謝你的分享,點(diǎn)贊,在看??ed2c5085a45d93919ace8571866b75a3.webp

          瀏覽 49
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91成人在线免费 | jlzz国产 | 尤物蜜芽成人网站 | 成年人网站在线 | 又黄又骚的网站免费看 |