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/2021/08/17/python3-itertools/
来源:RHZ | 用文字记录工作和学习生活
文章版权归作者所有,未经允许请勿转载。
THE END
0
二维码
海报
Python3 进阶课程 / 内建模块 itertools
itertools 中有许多功能可以在迭代器上运行,类似于映射和过滤。itertools 中有许多功能可以在迭代器上运行,类似于映射和过滤。
例如:
takewhile - 当判定……

共有 0 条评论