itertools 介绍

在python中itertool为python提供一系列迭代iterator的方法。

地一个组合

itertools.combinations(sq, r)

该函数的作用是在列表sq中穷举所有的组合项目。 地一个参数是列表,第二个参数一个项中的个数。

比如参数为‘abcd’和2。意思为从abcd中两两组合。 ab,ac,ad,bc,bd,cd

import itertools
str = ‘abcd‘
com = itertools.combination(str, 2)
print [item for item in com]

结果:[(‘a‘, ‘b‘), (‘a‘, ‘c‘), (‘a‘, ‘d‘), (‘b‘, ‘c‘), (‘b‘, ‘d‘), (‘c‘, ‘d‘)]

这是组合,自然有排列。

排列和组合的区别在于一个元素tuple内,先后顺序是否决定一个元素。比如(a,b)与(b,a),组合认为这是一个tuple,而排列认为这是两个。

组合的函数有:combinations,combinations_with_replacement。 两者区别在于是否出现如(a,a),(b,b)这种元素。

排列:product, permutations

时间: 2024-10-10 21:07:22

itertools 介绍的相关文章

python中itertools模块介绍---01

itertools模块中包含了很多函数,这些函数最终都生成一个或多个迭代器,下面对这些函数进行介绍: 为了能够使用itertools中的函数,需要将该模块导入: >>>from itertools import * count(start=0,step=1): 源代码为: def count(start=0,step=1):     n=start     while True:         yield n         n+=step 从源代码可以看出,count函数产生一个生成

python中itertools模块介绍---03

product(*iterables[,repeat]): 源代码: def product(*args,**kwds):     pools=map(tuple,args)*kwds.get("repeat",1)     result=[[]]     for pool in pools:         result=[x+[y] for x in result for y in pool]     for prod in result:         yield tuple(

python中itertools模块介绍---02

chain(*iterables): 源代码: def chain(*iterables):     for it in iterables:         for element in it:             yield element chain函数接收多个参数(iterables),并且对iterables进行遍历,返回每个iterable中的元素.最终结果就像返回的所有元素均来自同一个单一的序列,例如: >>>a=chain('ab','cd') >>>

Python3之itertools模块

Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数. 1.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

Python高级特性(1):Iterators、Generators和itertools(转)

译文:Python高级特性(1):Iterators.Generators和itertools [译注]:作为一门动态脚本语言,Python 对编程初学者而言很友好,丰富的第三方库能够给使用者带来很大的便利.而Python同时也能够提供一些高级的特性方便用户使用更为复杂的数据结构.本系 列文章共有三篇,本文是系列的第一篇,将会介绍迭代器.生成器以及itertools模块的相关用法.由于作者 Sahand Saba 列举的示例中有诸多专业的数学相关内容,因此翻译中有诸多不妥之处请大家指出,非常感谢

python标准库之itertools

itertools库 迭代器(生成器)在python中是一种很常用的也很好用的数据结构,比起列表(list)来说,迭代器最大的优势就是延迟计算,按需使用. itertools库的几种方法介绍: itertools.accumulate:列表累加方法 >>> import itertools >>> x = itertools.accumulate(range(10)) >>> print(list(x)) [0, 1, 3, 6, 10, 15, 21

[PY3]——过滤数据——列表推导、filter()、itertools.compress()

问题 你有一个数据序列,想利用一些规则从中提取出需要的值或者是缩短序列 解决方案 最简单的过滤数据的方法,就是使用列表推导. 使用列表推导的一个潜在缺陷就是如果输入非常大的时候会产生一个非常大的结果集,对内存敏感时可以考虑使用生成器表达式迭代产生过滤元素 在过滤规则比较复杂不便于用简单的列表推导就写出来的情况下,这时可以考虑写成将规则写成一个函数,然后使用内建的 filter() 函数 还有过滤工具 itertools.compress() 列表推导 lst=[1,4,-5,10,-7,2,3,

python基础31[常用模块介绍]

python基础31[常用模块介绍] python除了关键字(keywords)和内置的类型和函数(builtins),更多的功能是通过libraries(即modules)来提供的. 常用的libraries(modules)如下: 1)python运行时服务 * copy: copy模块提供了对复合(compound)对象(list,tuple,dict,custom class)进行浅拷贝和深拷贝的功能. * pickle: pickle模块被用来序列化python的对象到bytes流,从

Python Iteration,itertools(Python迭代器,itertool个人总结)

1.迭代是什么?首先看三个例子: 当迭代的对象是一个list对象的时候,他打印的是每一个list对象 for i in [1,2,3,4]:     print(i) 打印的结果: 1 2 3 4 当我们迭代的对象是一个字符串的时候,他会一一打印出字符串的每一个字符 for c in 'Python':     print(c) 打印的结果是: P y t h o n 当我们迭代的对象是一个字典(dict)时,他会遍历他的keys for k in {'x':1,'y':2}:     prin