一、介绍
itertools 是python的迭代器模块,itertools提供的工具相当高效且节省内存。使用这些工具,你将能够创建自己定制的迭代器用于高效率的循环。
二、模块使用与代码
1、元素的组合
itertools.combinations(iterable, r)
- iterable:一个可迭代对象。
- r:取tierable对象中r个元素进行组合。
注意:函数返回的时一个迭代器。
代码示例:
import itertools x=[1,2,3] combin_1=itertools.combinations(x,1) #取1个数进行组合,生成的时一个迭代器 combin_2=itertools.combinations(x,2) #取2个数进行组合,生成的是一个迭代器 print('combin_1:',list(combin_1)) #将迭代器转为列表并打印 print('\ncombin_1、combin_2的数据类型:',type(combin_1)) print('\n输出迭代器每次迭代内容:') for i in combin_2: print(i) ''' 结果: combin_1: [(1,), (2,), (3,)] combin_1、combin_2的数据类型: <class 'itertools.combinations'> 输出迭代器每次迭代内容: (1, 2) (1, 3) (2, 3) '''
2、数据的排列
itertools.combinations(iterable, r)
- iterable:一个可迭代对象。
- r:取tierable对象中r个元素进行组合。
注意:函数返回的时一个迭代器。
import itertools x=[1,2,3] combin_1=itertools.permutations(x,1) #取1个数进行组合,生成的时一个迭代器 combin_2=itertools.permutations(x,2) #取2个数进行组合,生成的是一个迭代器 print('combin_1:',list(combin_1)) #将迭代器转为列表并打印 print('\ncombin_1、combin_2的数据类型:',type(combin_1)) print('\n输出迭代器每次迭代内容:') for i in combin_2: print(i) ''' 结果: combin_1: [(1,), (2,), (3,)] combin_1、combin_2的数据类型: <class 'itertools.permutations'> 输出迭代器每次迭代内容: (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2) '''