最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中itertools模塊使用小結(jié)

 更新時(shí)間:2021年11月04日 08:21:48   作者:嗨,阿良  
itertools 是python的迭代器模塊,itertools提供的生成迭代器的函數(shù),相當(dāng)高效且節(jié)省內(nèi)存。使用這些工具,你將能夠創(chuàng)建自己定制的迭代器用于高效率的循環(huán)。接下來(lái)通過(guò)本文給大家介紹python中itertools模塊使用,感興趣的朋友一起看看吧

Python 內(nèi)置的 itertools 模塊包含了一系列用來(lái)產(chǎn)生不同類型迭代器的函數(shù)或類,這些函數(shù)的返回都是一個(gè)迭代器,我們可以通過(guò) for 循環(huán)來(lái)遍歷取值,也可以使用 next() 來(lái)取值。

itertools 模塊提供的迭代器函數(shù)有以下幾種類型:

  • 無(wú)限迭代器:生成一個(gè)無(wú)限序列,比如自然數(shù)序列 1, 2, 3, 4, ...;
  • 有限迭代器:接收一個(gè)或多個(gè)序列(sequence)作為參數(shù),進(jìn)行組合、分組和過(guò)濾等;
  • 組合生成器:序列的排列、組合,求序列的笛卡兒積等。

itertools

高效循環(huán)下創(chuàng)建循環(huán)器的標(biāo)準(zhǔn)庫(kù)

Infinite itertools,無(wú)限迭代器

itertools.count(start=0, step=10)

默認(rèn)返回一個(gè)從0開(kāi)始,依次+10的自然數(shù)迭代器,如果你不停止,它會(huì)一直運(yùn)行下去。
可以用start指定開(kāi)始的位置,step是步長(zhǎng)。

import itertools

c = itertools.count(start=0, step=1)
for i in c:
    print(i)

    
# 0
# 10
# 20
# 30
# 40
# 50
# ...

itertools.cycle(iterable)

傳入一個(gè)可迭代對(duì)象,然后無(wú)限循環(huán)迭代。

import itertools

# itertools.count()
l = [1,2,3,4,5]
c = itertools.cycle(l)

for i in c:
    print(i)


# 1
# 2
# 3
# 4
# 5
# 1
# 2
# 3
# 4
# 5
# ...

itertools.repeat(p_object, times=None)

重復(fù)迭代一個(gè)對(duì)象p_object,如果不指定times,則會(huì)迭代無(wú)數(shù)次,也可以通過(guò)times參數(shù)指定迭代的次數(shù)。

import itertools

# itertools.count()
l = [1,2,3,4,5]
c = itertools.repeat(l, 5)

for i in c:
    print(i)


# [1, 2, 3, 4, 5]
# [1, 2, 3, 4, 5]
# [1, 2, 3, 4, 5]
# [1, 2, 3, 4, 5]
# [1, 2, 3, 4, 5]

Iterators terminating on the shortest input sequence

itertools.accumulate(iterable, func)

返回序列的累計(jì)值或者其他二進(jìn)制函數(shù)。

import itertools

# itertools.count()
l = [1,2,3,4,5]
c = itertools.accumulate(l)

print(c)

for i in c:
    print(i)


# 1
# 3
# 6
# 10
# 15

accumulate()仍然返回的是一個(gè)迭代器,傳一個(gè)list,在for循環(huán)中遍歷打印的時(shí)候發(fā)現(xiàn),它做了累加操作。(迭代第一個(gè)數(shù),就是前一個(gè)數(shù)的和,迭代到第二個(gè)數(shù)時(shí),就是前兩個(gè)數(shù)的和,以此類推)

并且做遞加操作時(shí)支持:list, tuple, str, set, dict

傳入的是dict對(duì)象,那么會(huì)累加迭代dict的key:

import itertools

# itertools.count()
d = {'a': 1, 'b': 2, 'c': 3}
c = itertools.accumulate(d)

print(c)

for i in c:
    print(i)


# <itertools.accumulate object at 0x000001F7A0A90E48>
# a
# ab
# abc

itertools.chain(*iterables)

chain()方法中的參數(shù)可以傳入多個(gè)序列,而且只要是序列即可,不限定序列的數(shù)據(jù)類型。

如:迭代list, tuple, str三個(gè)序列

import itertools

l = [1, 2, 3, 4, 5]
t = (1, 2, 3, 4, 5)
s = 'abcdefg'
c = itertools.chain(l, t, s)

print(c)

for i in c:
    print(i)

# <itertools.chain object at 0x0000026E64801448>
# 1
# 2
# 3
# 4
# 5
# 1
# 2
# 3
# 4
# 5
# a
# b
# c
# d
# e
# f
# g

itertools 笛卡爾積

import itertools

d = [
    [{"a": 1}, {"b": 2}], [{"c": 3}, {"d": 4}, {"e": 5}], [{"f": 6}, {"g": 7}]
]

print(*d)

for i in itertools.product(*d):
    print(i)

# [{'a': 1}, {'b': 2}] [{'c': 3}, {'d': 4}, {'e': 5}] [{'f': 6}, {'g': 7}]
# ({'a': 1}, {'c': 3}, {'f': 6})
# ({'a': 1}, {'c': 3}, {'g': 7})
# ({'a': 1}, {'d': 4}, {'f': 6})
# ({'a': 1}, {'d': 4}, {'g': 7})
# ({'a': 1}, {'e': 5}, {'f': 6})
# ({'a': 1}, {'e': 5}, {'g': 7})
# ({'b': 2}, {'c': 3}, {'f': 6})
# ({'b': 2}, {'c': 3}, {'g': 7})
# ({'b': 2}, {'d': 4}, {'f': 6})
# ({'b': 2}, {'d': 4}, {'g': 7})
# ({'b': 2}, {'e': 5}, {'f': 6})
# ({'b': 2}, {'e': 5}, {'g': 7})

到此這篇關(guān)于python中的itertools模塊簡(jiǎn)單使用的文章就介紹到這了,更多相關(guān)python itertools模塊使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python?泛型函數(shù)--singledispatch的使用解讀

    python?泛型函數(shù)--singledispatch的使用解讀

    這篇文章主要介紹了python?泛型函數(shù)--singledispatch的使用解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • python+opencv實(shí)現(xiàn)車道線檢測(cè)

    python+opencv實(shí)現(xiàn)車道線檢測(cè)

    這篇文章主要為大家詳細(xì)介紹了python+opencv實(shí)現(xiàn)車道線檢測(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-02-02
  • python顯示生日是星期幾的方法

    python顯示生日是星期幾的方法

    這篇文章主要介紹了python顯示生日是星期幾的方法,涉及Python使用date模塊操作日期的技巧,需要的朋友可以參考下
    2015-05-05
  • Python?十大經(jīng)典排序算法實(shí)現(xiàn)詳解

    Python?十大經(jīng)典排序算法實(shí)現(xiàn)詳解

    排序算法是《數(shù)據(jù)結(jié)構(gòu)與算法》中最基本的算法之一。排序算法可以分為內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部的排序記錄,在排序過(guò)程中需要訪問(wèn)外存
    2022-01-01
  • Python之tkinter面板PanedWindow的使用

    Python之tkinter面板PanedWindow的使用

    這篇文章主要介紹了Python之tkinter面板PanedWindow的使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Python機(jī)器學(xué)習(xí)庫(kù)sklearn(scikit-learn)的基礎(chǔ)知識(shí)和高級(jí)用法

    Python機(jī)器學(xué)習(xí)庫(kù)sklearn(scikit-learn)的基礎(chǔ)知識(shí)和高級(jí)用法

    Scikit-Learn是 Python 最流行的機(jī)器學(xué)習(xí)庫(kù)之一,它提供了各種工具來(lái)實(shí)現(xiàn)、評(píng)估和探索各種學(xué)習(xí)算法,用于,各種機(jī)器學(xué)習(xí)任務(wù),在本教程中,我們將介紹 Scikit-Learn 的基礎(chǔ)知識(shí)和一些高級(jí)用法,并提供一些實(shí)例代碼來(lái)幫助我們更好地理解
    2023-07-07
  • 簡(jiǎn)單的Python調(diào)度器Schedule詳解

    簡(jiǎn)單的Python調(diào)度器Schedule詳解

    這篇文章主要介紹了簡(jiǎn)單的Python調(diào)度器Schedule詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 利用python的socket發(fā)送http(s)請(qǐng)求方法示例

    利用python的socket發(fā)送http(s)請(qǐng)求方法示例

    這篇文章主要給大家介紹了關(guān)于利用python的socket發(fā)送http(s)請(qǐng)求的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧
    2018-05-05
  • Python實(shí)現(xiàn)Linux中的du命令

    Python實(shí)現(xiàn)Linux中的du命令

    這篇文章主要介紹了Python實(shí)現(xiàn)Linux中簡(jiǎn)單du命令,需要的朋友可以參考下
    2017-06-06
  • Python之二維正態(tài)分布采樣置信橢圓繪制

    Python之二維正態(tài)分布采樣置信橢圓繪制

    這篇文章主要介紹了Python之二維正態(tài)分布采樣置信橢圓繪制方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02

最新評(píng)論

巴中市| 崇礼县| 莱州市| 南靖县| 太仓市| 冕宁县| 博野县| 建德市| 珠海市| 尉犁县| 稷山县| 乌兰县| 万宁市| 五河县| 成安县| 油尖旺区| 福清市| 怀远县| 资溪县| 湖口县| 台南县| 台江县| 金华市| 汉源县| 泽库县| 崇仁县| 祥云县| 根河市| 景德镇市| 嘉祥县| 神木县| 丰城市| 增城市| 临武县| 平陆县| 长岭县| 海林市| 茶陵县| 赤水市| 容城县| 开阳县|