1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務時間:8:30-17:00
      你可能遇到了下面的問題
      關閉右側工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      Python的Itertools庫怎么使用

      這篇文章主要介紹“Python的Itertools庫怎么使用”,在日常操作中,相信很多人在Python的Itertools庫怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python的Itertools庫怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

      成都創(chuàng)新互聯(lián)不只是一家網(wǎng)站建設的網(wǎng)絡公司;我們對營銷、技術、服務都有自己獨特見解,公司采取“創(chuàng)意+綜合+營銷”一體化的方式為您提供更專業(yè)的服務!我們經(jīng)歷的每一步也許不一定是最完美的,但每一步都有值得深思的意義。我們珍視每一份信任,關注我們的網(wǎng)站制作、成都網(wǎng)站建設質(zhì)量和服務品質(zhì),在得到用戶滿意的同時,也能得到同行業(yè)的專業(yè)認可,能夠為行業(yè)創(chuàng)新發(fā)展助力。未來將繼續(xù)專注于技術創(chuàng)新,服務升級,滿足企業(yè)一站式成都全網(wǎng)營銷推廣需求,讓再小的品牌網(wǎng)站制作也能產(chǎn)生價值!

      一、概念簡介

      1. 什么是迭代器?

      迭代器是由__next__方法組成的對象。它有一個狀態(tài)。狀態(tài)用于記住迭代期間的執(zhí)行。因此,迭代器知道它的當前狀態(tài),這使它的內(nèi)存效率高。這就是為什么在內(nèi)存高效和快速的應用程序中使用迭代器的原因。

      我們可以打開無限的數(shù)據(jù)流(比如讀取文件)并獲取下一項(比如文件中的下一行)。然后我們可以對項目執(zhí)行一個操作,并繼續(xù)進行下一個項目。這可能意味著我們可以有一個返回無限個元素的迭代器,因為我們只需要知道當前項。

      當沒有下一個要返回的項時,迭代器會引發(fā)StopIteration異常。

      2. 什么是可迭代的?

      iterable是可以返回迭代器的對象。它有一個__iter__方法返回一個迭代器。iterable也是一個我們可以循環(huán)并可以調(diào)用iter()的對象。它有一個__getitem__方法,它可以從0開始去連續(xù)索引(并在索引不再有效時引發(fā)一個IndexError)。

      3. 什么是Itertools?

      Itertools是Python模塊,是Python  3標準庫的一部分。它允許我們在迭代器上執(zhí)行高效的內(nèi)存和計算任務。它的靈感來自APL、Haskell和SML的構造。

      從本質(zhì)上講,該模塊包含許多快速且內(nèi)存效率高的方法,這些方法可以幫助我們用純Python簡潔而高效地構建應用程序。

      二、無限迭代器

      如果我們想構造一個返回無限均勻間隔值的迭代器呢?或者,如果我們必須從迭代器生成一個元素循環(huán)呢?或者,也許我們想要重復迭代器的元素?

      itertools庫提供了一組函數(shù),我們可以使用這些函數(shù)來執(zhí)行所需的所有功能。

      本節(jié)中列出的三個函數(shù)構造并返回可以是無限項流的迭代器。

      1. Count

      作為實例,我們可以生成一個等距值的無限序列:

      start = 10 stop = 1 my_counter = it.count(start, stop) for i in my_counter:     # this loop will run for ever     print(i)

      結果:

      10 11 12 13 14 15

      2. Cycle

      我們可以使用cycle方法從輸入中生成無限循環(huán)的元素。

      該方法的輸入需要是可迭代的對象,比如列表、字符串或字典等:

      my_cycle = it.cycle('Python') for i in my_cycle:    print(i)

      結果:

      P ythonPythonP

      3. Repeat

      要重復一個項(例如字符串或集合),可以使用repeat()函數(shù):

      to_repeat = 'FM' how_many_times = 4 my_repeater = it.repeat(to_repeat, how_many_times)for i in my_repeater:    print(i)#Prints FM FM FM FM

      這將重復字符串“FM”4次。如果我們不提供第二個參數(shù),那么它將無限次重復這個字符串。

      三、終止迭代器

      在本節(jié)中,我將說明終止迭代的強大特性。這些函數(shù)可以用于許多場景,例如:

      • 我們可能有很多迭代,我們想在一個序列中一個一個地對所有迭代的元素執(zhí)行一個操作。

      • 或者當我們有很多函數(shù)想要對iterable的每個元素執(zhí)行時

      • 或者有時我們就從迭代器中刪除元素,然后對其他元素執(zhí)行操作。

      1. Chain

      這個方法允許我們創(chuàng)建一個迭代器,它返回序列中所有輸入迭代中的元素,直到?jīng)]有元素剩下為止。因此,它可以將連續(xù)序列視為單個序列。

      chain = it.chain([1,2,3], ['a','b','c'], ['End']) for i in chain:    print(i)

      結果:

      1 23abcEnd

      2. Drop While

      我們可以傳遞一個iterable和一個條件,這個方法將開始對每個元素計算條件,直到條件對一個元素返回False為止。一旦某個元素的條件值為False,該函數(shù)將返回可迭代的其余元素。

      例如,假設我們有一個作業(yè)列表,并且我們希望遍歷元素,并且只有在不滿足條件時才返回元素。一旦條件的值為False,我們期望返回迭代器的其余元素。

      jobs = ['job1', 'job2', 'job3', 'job10', 'job4', 'job5'] dropwhile = it.dropwhile(lambda x : len(x)==4, jobs) for i in dropwhile:     print(i)

      結果:

      job10 job4job5

      該方法返回了上面的三項,因為元素job10的長度不等于4個字符,因此返回了job10和其他元素。

      3. Take While

      這個方法與dropwhile()方法相反。本質(zhì)上,它返回一個iterable的所有元素,直到第一個條件返回False,然后它不返回任何其他元素。

      例如,假設我們有一個作業(yè)列表,并且希望在不滿足條件時立即停止返回作業(yè)。

      jobs = ['job1', 'job2', 'job3', 'job10', 'job4', 'job5'] takewhile = it.takewhile(lambda x : len(x)==4, jobs) for i in takewhile:     print(i)

      結果:

      job1 job2job3

      4. GroupBy

      這個函數(shù)在將可迭代的連續(xù)元素分組之后構造一個迭代器。該函數(shù)返回一個鍵、值對的迭代器,其中鍵是組鍵,值是按鍵分組的連續(xù)元素的集合。

      考慮以下代碼片段:

      iterable = 'FFFAARRHHHAADDMMAAALLIIKKK' my_groupby = it.groupby(iterable)for key, group in my_groupby:     print('Key:', key)     print('Group:', list(group))

      注意,group屬性是可迭代的,因此我將其具體化為一個列表。

      因此,這將打印:

      Key: F Group: [‘F’, ‘F’, ‘F’] Key: A Group: [‘A’, ‘A’] Key: R Group: [‘R’, ‘R’] Key: H Group: [‘H’, ‘H’, ‘H’] Key: A Group: [‘A’, ‘A’] Key: D Group: [‘D’, ‘D’] Key: M Group: [‘M’, ‘M’] Key: A Group: [‘A’, ‘A’, ‘A’] Key: L Group: [‘L’, ‘L’] Key: I Group: [‘I’, ‘I’] Key: K Group: [‘K’, ‘K’, ‘K’]

      5. Tee

      該方法可以拆分一個迭代,并從輸入中生成新的迭代。輸出也是一個迭代器,它返回給定數(shù)量的項的可迭代值。為了更好地理解它,請看下面的代碼片段:

      iterable = 'FM' tee = it.tee(iterable, 5) for i in tee:    print(list(i))

      這個方法返回整個可迭代FM, 5次:

      [‘F’, ‘M’] [‘F’, ‘M’][‘F’, ‘M’][‘F’, ‘M’][‘F’, ‘M’]

      四、組合迭代器

      1. Permutations

      通過使用permutation方法,我們可以創(chuàng)建一個迭代器來返回輸入iterable中元素的連續(xù)排列。

      我們可以傳入一個參數(shù)來指定排列的長度。它默認為可迭代的長度。

      這意味著當缺少長度時,該方法將生成所有可能的全長排列。

      iterable = 'FM1' length = 2 permutations = it.permutations(iterable, length) for i in permutations:     print(i)

      結果:

      (‘F’, ‘M’, ‘1’) (‘F’, ‘1’, ‘M’)(‘M’, ‘F’, ‘1’)(‘M’, ‘1’, ‘F’)(‘1’, ‘F’, ‘M’)(‘1’, ‘M’, ‘F’)

      如果長度為2,則生成:

      (‘F’, ‘M’) (‘F’, ‘1’)(‘M’, ‘F’)(‘M’, ‘1’)(‘1’, ‘F’)(‘1’, ‘M’)(‘F’, ‘M’)(‘F’, ‘1’)(‘M’, ‘1’)

      2. Combinations

      最后,我想解釋一下如何生成iterable的組合。

      給定一個可迭代器,我們可以構造一個迭代器來返回給定長度的元素的子序列。

      根據(jù)它們的位置,元素被視為唯一的,并且只返回不同的元素。

      iterable = 'FM1' combinations = it.combinations(iterable, 2) for i in combinations:    print(i)

      結果:

      (‘F’, ‘M’) (‘F’, ‘1’)(‘M’, ‘1’)

      到此,關于“Python的Itertools庫怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
      網(wǎng)站標題:Python的Itertools庫怎么使用
      網(wǎng)站網(wǎng)址:http://www.ef60e0e.cn/article/pidscs.html

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        睢宁县| 鲁山县| 葵青区| 二手房| 泸定县| 晋州市| 大关县| 潞城市| 东辽县| 开平市| 隆安县| 苏尼特右旗| 望城县| 博罗县| 安阳县| 嘉祥县| 新津县| 阿拉尔市| 萍乡市| 夏河县| 贡山| 金川县| 三明市| 颍上县| 邹平县| 集贤县| 迁西县| 二手房| 遂宁市| 鹤山市| 普安县| 柞水县| 马边| 二连浩特市| 绍兴县| 黎川县| 靖西县| 台南市| 铜陵市| 巨鹿县| 彰武县|