itertools.count(start=0, step=1) #创建一个迭代器,生成从n开始的连续整数,如果忽略n,则从0开始计算(注意:此迭代器不支持长整数),如果超出了sys.maxint,计数器将溢出并继续从-sys.maxint-1开始计算 #start: 起始值,默认为0, #step: 步长,默认为1 import itertools a = itertools.count() for x in a: if x > 5: break print(x) #输出: 1 2 3 4 5 6 b = itertools.count(2,3) for x in b: if x > 10: break print(x) #输出 2 5 8
itertools.cycle(iterable)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
itertools.cycle(iterable) #创建一个迭代器,对iterable中的元素反复执行循环操作,内部会生成iterable中的元素的一个副本,此副本用于返回循环中的重复项 #iterable: 可迭代对象,可以为一个列表、字符串、元组等 import itertools a = ['a','b','c'] i = 0 for x in itertools.cycle(a): i = i +1 if i > 5: break print(i,x) #输出 1,'a' 2,'b' 3,'c' 4,'a' 5,'b'
itertools.repeat(object[, times])
1 2 3 4 5 6 7 8 9 10 11 12 13
itertools.repeat(object[, times]) #创建一个迭代器,重复生成object,times(如果已提供)指定重复计数,如果未提供times,将无止尽返回该对象 #object: 需要重复的对象,对象是个整体 #times: 重复次数 import itertools for x in itertools.repeat([1,2,3],3): print(x) #输出 [1,2,3] [1,2,3] [1,2,3]
itertools.chain(iterable1, iterable2, ...) #将多个迭代器作为参数, 但只返回单个迭代器, 它产生所有参数迭代器的内容, 就好像他们是来自于一个单一的序列 #参数为多个可迭代对象,就好像被链条衔接起来了一样 import itertools for x in itertools.chain([1,2,3],'abc'): print(x) #输出 1 2 3 'a' 'b' 'c' for x in itertools.chain([1,2,3],['a','b','c']): print(x) #输出 1 2 3 'a' 'b' 'c'
itertools.chain.from_iterable(iterable)
1 2 3 4 5 6 7 8 9 10 11 12
itertools.chain.from_iterable(iterable) #接收一个可迭代对象作为参数,返回一个迭代器 from itertools import chain a = [['first','second','thrid'],['a','b','c']] b = [[1,2,3],[4,5,6]] for x in range(len(a)): list(chain.from_iterable(zip(a[x],b[x]))) #输出 ['first', 1, 'second', 2, 'thrid', 3] ['a', 4, 'b', 5, 'c', 6]
itertools.compress(data, selectors)
1 2 3 4 5 6 7 8 9 10 11 12 13
itertools.compress(data, selectors) #可用于对数据进行筛选,当 selectors 的某个元素为 true 时,则保留 data 对应位置的元素,否则去除 #data: 待筛选数据 #selectors: 当为真时,保留data对应位的数据,为假或为空时则去除 from itertools import compress for x in compress(['a','b','c','d'],[1,0,2]): print(x) #输出 'a' 'c' # 2 也为真,'d'对应值为空算假
from itertools import product # 迭代器# test scriptfor i j in product(range(10),range(10))
print(i,j)
# 同理等于两个for循环嵌套,只是这种写法远行速度遍历会快一些,时间复杂度减小。for x in range(10):
for y in range(10):
print(x,y)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2019-07-19 包-logging-hashlib-深浅拷贝