python中itertools的用法,python中itertools是什么意思
Python视频教程栏目介绍itertools模块。
Python中有一个强大的迭代工具包itertools,这是Python自带的标准工具包之一。
00-1010由于itertools是一个内置库,它不需要任何安装。直接导入itertools就可以了。
Product用于求多个迭代对象的笛卡尔积,相当于嵌套for循环。也就是:
笛卡儿积是指数学上两个集合x和y的笛卡儿积,也称为直积,表示为x y。
乘积(A,B)与``((x,y) for x in A for y in B)`
导入itertools
对于itertools.product中的项目([1,2,3],[100,200]):
打印(项目)
#输出如下所示
(1, 100)
(1, 200)
(2, 100)
(2, 200)
(3, 100)
(3,200)复制代码
product
。通俗地说,排列就是一个可迭代对象的所有数学或字符的完整排列。所有排列,即产生指定个数元素的所有排列(顺序相关),即高中排列组合中的A。
置换它接受一个集合对象,然后生成一个元组序列。
例如,打印(列表(ITER工具。置换( ABC ,3)),其中A33=6A _ 3 ^ 3=6a 33=
777777777777778em;">6种情况。
items = ['a','b','c']如果需要指定长度的所有排列,可以传递一个可选的长度参数from itertools import permutations
for i in permutations(items):
print(i) #排列组合
print(list(itertools.permutations('abc',3)))
# 输出如下
('a', 'b', 'c')
('a', 'c', 'b')
('b', 'a', 'c')
('b', 'c', 'a')
('c', 'a', 'b')
('c', 'b', 'a')
[('a', 'b', 'c'), ('a', 'c', 'b'), ('b', 'a', 'c'), ('b', 'c', 'a'), ('c', 'a', 'b'), ('c', 'b', 'a')]复制代码
r
。
items = ['a','b','c']from itertools import permutations
for i in permutations(items,2):
print(i) #排列组合
# 输出如下
('a', 'b')
('a', 'c')
('b', 'a')
('b', 'c')
('c', 'a')
('c', 'b')复制代码
combinations
求列表或生成器中指定数目的元素不重复的所有组合 itertools.permutations(iter,r)
和 itertools.combinations(iter,r)
的区别是:前者是permutations
允许重复使用,后者combinations
是不能重复使用
>>> print(list(itertools.combinations('abc',3)))[('a', 'b', 'c')]复制代码
combinations_with_replacement
combinations_with_replacement
和combinations
很相似,唯一的不同在于前者combinations_with_replacement
集合类型中的数据是可以重复的
>>> print(list(itertools.combinations_with_replacement('abc',3)))[('a', 'a', 'a'), ('a', 'a', 'b'), ('a', 'a', 'c'), ('a', 'b', 'b'), ('a', 'b', 'c'), ('a', 'c', 'c'), ('b', 'b', 'b'), ('b', 'b', 'c'), ('b', 'c', 'c'), ('c', 'c', 'c')]复制代码
accumulate
accumulate
用于对列表中元素逐个累加
>>> import itertools>>> x = itertools.accumulate(range(10))
>>> print(list(x))
[0, 1, 3, 6, 10, 15, 21, 28, 36, 45]复制代码
compress
compress()
是筛选工具,它接受一个可迭代对象以及一个布尔选择序列作为输入,输出时会将所有布尔序列中为True的可迭代对象输出。
import itertoolsits=["a","b","c","d","e","f","g","h"]
selector=[True,False,1,0,3,False,-2,"y"]
for item in itertools.compress(its,selector):
print (item)
a
c
e
g
h
复制代码
count
count(初值=0, 步长=1)
是 创建一个迭代器,从传入的起始参数开始的均匀间隔的数值。我们来看一个简单的例子
from itertools import countfor i in count(10): #从10开始无限循环
if i > 20:
break
else:
print(i)
10
11
12
13
14
15
16
17
18
19
20复制代码
chain
chain链条,主要用来把多个序列连在一起做迭代。
import itertoolschain还有一个非常重要的功能就是展平列表。chain = itertools.chain([1, 2, 3], [4, 5, 6])
for c in chain:
print(c)
1
2
3
4
5
6
复制代码
>>> list(itertools.chain([1, 2, 3], [4, 5], [6] ,[7,8]))[1, 2, 3, 4, 5, 6, 7, 8]复制代码
cycle
import itertools运行结果输出 1 2 3 1 2 3……一直周而复始,永不停息。cycle = itertools.cycle([1, 2, 3])
for c in cycle:
print(c)复制代码
相关免费学习推荐:python视频教程以上就是深入认识Python中的itertools模块的详细内容,更多请关注盛行IT软件开发工作室其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。