Python3 进阶课程 / 内建模块 itertools

itertools 中有许多功能可以在迭代器上运行,类似于映射和过滤。itertools 中有许多功能可以在迭代器上运行,类似于映射和过滤。

例如

  • takewhile - 当判定函数(返回值为 True 或 False)保持为True时,从迭代中取得项目;#中文意思:花时间# ;

  • chain - 将几个迭代结合成一个长整数;/链条/

  • accumulate - 以可迭代的方式返回一个正在运行的值。/积累/

from itertools import accumulate, takewhile

nums = list(accumulate(range(8)))
print(nums)
print(list(takewhile(lambda x: x<= 6, nums)))

输出:

[0, 1, 3, 6, 10, 15, 21, 28]
[0, 1, 3, 6]

笔记:

#为什么输出的是[0, 1, 3, 6, 10, 15, 21, 28]?
    #思路:
            range(8)#范围0,1,2,3,4,5,6,7
            #故应该是返回 [0, 1,2, 3,4,5, 6,7]才对
            # 考虑到是以可迭代的方式返回,所以应该是此数前几数相加
            #如:0,0+1,0+1+2,0+1+2+3,....
            #把正在运行的值全部加起来!

  • itertool中还有几个组合函数,比如 product 和 permutation/置换/。

  • 当你想用一些项目的所有可能的组合来完成任务时使用

  • -例如:

    from itertools import product, permutations
    letters = ("A", "B")
    print(list(product(letters, range(2))))
    #product(参数1,参数2)依次取出参数1中每一个元素,
    #与参数2中的每一个元素,组成元组,将所有元组组合成一个列表返回
    print(list(permutations(letters))) 
    #permutation函数重在排列置换

    输出

    [('A', 0), ('A', 1), ('B', 0), ('B', 1)]
    [('A', 'B'), ('B', 'A')]   #'A','B'置换顺序

版权声明:
作者:RHZ
链接:https://www.rhzhz.cn/?p=40
来源:RHZ | 用文字记录工作和学习生活
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
Python3 进阶课程 / 内建模块 itertools
itertools 中有许多功能可以在迭代器上运行,类似于映射和过滤。itertools 中有许多功能可以在迭代器上运行,类似于映射和过滤。 例如: takewhile - 当判定……
<<上一篇
下一篇>>