一日一库—itertools

#一日一库——itertools

from itertools import count, chain
import operator
#=======count=========
#count 实现了一个无限累加器,默认从0开始累加,当然我可以给count一个默认初始值
#从这个初始值开始累加
# count 内部实现了__iter__ __next__ 因此它是一个迭代器,可以用通过next来迭代

c = count()
print(c)
print(next(c)) #0 第一次next返回默认值
print(next(c)) #1 以后则累加

#因此我可以for _ in c 产出无限大小值,但是不建议这样做,容易造成编辑器的卡死

c1 = count(10)
print(next(c1))

cc = c1.__next__
print(cc()) #11
print(cc()) #12

#=======chain=========
#遍历所有的可迭代的对象,直到所有参数可迭代对象被遍历完,并返回一个生成器;
a = chain(‘a我c‘, ‘cde‘, ‘fgh‘)
print(a)
# 可以通过chain.from_iterables();
print(list(a.from_iterable([‘ac‘, ‘df‘]))) #[‘a‘, ‘c‘, ‘d‘, ‘f

#==========================未完===============================

原文地址:https://www.cnblogs.com/alplf123/p/10628314.html

时间: 2024-11-14 09:07:24

一日一库—itertools的相关文章

Python标准库--itertools模块

itertools模块:处理可迭代对象 chain()和islice().tee() chain:合并迭代器 islice:切割迭代器,start,end,step tee:复制迭代器,新迭代器共享输入迭代器, 新迭代器之间不影响 from itertools import * # for i in chain([1, 2, 3], ['a', 'b', 'c']): # print(i) # # for i in islice(count(), 0, 100, 10): # print(i)

Python 函数式编程之迭代器、生成器及其应用

python 标准库中提供了 itertools, functools, operator三个库支持函数式编程,对高阶函数的支持,python 提供 decorator 语法糖. 迭代器 (iterator)和生成器(generator)概念是 python 函数式编程的基础,利用迭代器和生成器可以实现函数式编程中经常用到的 map(), filter(), reduce() 等过程以及 itertools, functools 中提供的绝大部分功能. 1.迭代器和生成器基础(next, ite

高效测试用例组织算法pairwise之Python实现

------------------------------------------本文专为<光荣之路培训 >原创,如有转载请注明出处---------------------------------- 开篇: 测试过程中,对于多参数参数多值的情况进行测试用例组织,之前一直使用[正交分析法]进行用例组织,说白了就是把每个参数的所有值分别和其他参数的值做一个全量组合,用Python脚本实现,就是itertools模块中product方法(又称笛卡尔积法). 正交分析法的优点是测试用例覆盖率100

python公司面试题集锦 python面试题大全

问题一:以下的代码的输出将是什么? 说出你的答案并解释. class Parent(object): x = 1 class Child1(Parent): pass class Child2(Parent): pass print Parent.x, Child1.x, Child2.x Child1.x = 2 print Parent.x, Child1.x, Child2.x Parent.x = 3 print Parent.x, Child1.x, Child2.x 答案 以上代码的

Python演讲笔记1

参考: 1. The Clean Architecture in Python (Brandon Rhodes) 2. Python Best Practice Patterns (Vladimir Keleshev) 3. Transforming Code into Beautiful, Idiomatic Python (Raymond Hettinger) 4. How to Write Resuable Code (Greg Ward) 5. How to write actually

问题13:如何在for语句中迭代多个可迭代的对象

from random import randint a1 = [randint(10, 50) for _ in range(5)] a2 = [randint(10, 50) for _ in range(5)] a3 = [randint(10, 50) for _ in range(5)] a4 = [] 例一:并行操作:在一个for循环中实现多个列表的并行迭代: 方案:使用内置函数zip,将多个迭代对象合并,每次迭代返回一个元组 案例:对3个列表同时迭代,计算各列表对应元素的和: #方

九宫格问题、16宫格

九宫格(Lo Shu Square)问题 将1到9的数字按照一定方式填入九宫格内.使得每一列.每一行以及两条对角线上的值都相等. 全排列(递归) 首先,用枚举法,生成各种(3, 3)的二维数组: def perm(li): """递归实现列表的全排列 如果输入是[1],那么返回[[li],]表示有一种排列 如果输入是[1, 2],期望的返回的是[[1, 2], [2, 1]],这是要之后的递归实现的 """ if len(li) <= 1:

Python标准库13 循环器 (itertools)

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在循环对象和函数对象中,我们了解了循环器(iterator)的功能.循环器是对象的容器,包含有多个对象.通过调用循环器的next()方法 (__next__()方法,在Python 3.x中),循环器将依次返回一个对象.直到所有的对象遍历穷尽,循环器将举出StopIteration错误. 在for i in iterator结构中,循环器每次返回的对象将赋予给i,直到循环结束.使

Python标准库:迭代器Itertools

Infinite Iterators: Iterator Arguments Results Example count() start, [step] start, start+step, start+2*step, ... count(10) --> 10 11 12 13 14 ... cycle() p p0, p1, ... plast, p0, p1, ... cycle('ABCD') --> A B C D A B C D ... repeat() elem [,n] elem