Python使用itertools模块实现排列组合功能示例


Posted in Python onJuly 02, 2018

本文实例讲述了Python使用itertools模块实现排列组合功能。分享给大家供大家参考,具体如下:

一、笛卡尔积:itertools.product(*iterables[, repeat])

直接对自身进行笛卡尔积:

import itertools
for i in itertools.product('ABCD', repeat = 2):
  print (''.join(i),end=' ')

输出结果:

AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD

print (''.join(i))这个语句可以让结果直接排列到一起

end=' '可以让默认的输出后换行变为一个空格

两个元组进行笛卡尔积:

import itertools
a = (1, 2, 3)
b = ('A', 'B', 'C')
c = itertools.product(a,b)
for i in c:
  print(i,end=' ')

输出结果:

(1, 'A') (1, 'B') (1, 'C') (2, 'A') (2, 'B') (2, 'C') (3, 'A') (3, 'B') (3, 'C')

二、排列:itertools.permutations(iterable[, r])

import itertools
for i in itertools.permutations('ABCD', 2):
  print (''.join(i),end=' ')

输出结果:

AB AC AD BA BC BD CA CB CD DA DB DC

三、组合:itertools.combinations(iterable, r)

import itertools
for i in itertools.combinations('ABCD', 3):
  print (''.join(i))

输出结果:

ABC
ABD
ACD
BCD

四、组合(包含自身重复):itertools.combinations_with_replacement(iterable, r)

import itertools
for i in itertools.combinations_with_replacement('ABCD', 3):
  print (''.join(i),end=' ')

输出结果:

AAA AAB AAC AAD ABB ABC ABD ACC ACD ADD BBB BBC BBD BCC BCD BDD CCC CCD CDD DDD

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python利用pyHook实现监听用户鼠标与键盘事件
Aug 21 Python
python使用chardet判断字符串编码的方法
Mar 13 Python
python杀死一个线程的方法
Sep 06 Python
python遍历目录的方法小结
Apr 28 Python
Python基于scapy实现修改IP发送请求的方法示例
Jul 08 Python
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
Aug 08 Python
Python 读取某个目录下所有的文件实例
Jun 23 Python
python分块读取大数据,避免内存不足的方法
Dec 10 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
Aug 12 Python
Python vtk读取并显示dicom文件示例
Jan 13 Python
python numpy数组中的复制知识解析
Feb 03 Python
python-docx文件定位读取过程(尝试替换)
Feb 13 Python
python绘制立方体的方法
Jul 02 #Python
python numpy 一维数组转变为多维数组的实例
Jul 02 #Python
Python实现通过继承覆盖方法示例
Jul 02 #Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
Jul 02 #Python
Python 中的range(),以及列表切片方法
Jul 02 #Python
python 统计数组中元素出现次数并进行排序的实例
Jul 02 #Python
分享vim python缩进等一些配置
Jul 02 #Python
You might like
东芝TOSHIBA RP-F11电路分析
2021/03/02 无线电
用PHP读注册表
2006/10/09 PHP
thinkphp实现图片上传功能分享
2014/03/04 PHP
php自定义截取中文字符串-utf8版
2017/02/27 PHP
addRule在firefox下的兼容写法
2006/11/30 Javascript
很酷的javascript loading效果代码
2008/06/18 Javascript
js显示文本框提示文字的方法
2015/05/07 Javascript
JS实现支持多选的遍历下拉列表代码
2015/08/20 Javascript
JS创建事件的三种方法(实例代码)
2016/05/12 Javascript
JS数组去掉重复数据只保留一条的实现代码
2016/08/11 Javascript
VSCode 配置React Native开发环境的方法
2017/12/27 Javascript
JS实现的抛物线运动效果示例
2018/01/30 Javascript
微信小程序实现上传照片代码实例解析
2020/08/04 Javascript
[02:28]DOTA2亚洲邀请赛附加赛 RECAP赛事回顾
2015/01/29 DOTA
python使用wxPython打开并播放wav文件的方法
2015/04/24 Python
在Python中使用mongoengine操作MongoDB教程
2015/04/24 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
2020/01/20 Python
python dumps和loads区别详解
2020/02/04 Python
keras之权重初始化方式
2020/05/21 Python
Python爬虫之Selenium实现窗口截图
2020/12/04 Python
CSS3中box-shadow的用法介绍
2015/07/15 HTML / CSS
一家专门做特卖的网站:唯品会
2016/10/09 全球购物
Mytheresa中国官网:德国时尚奢侈品商城
2017/08/04 全球购物
英国天然宝石首饰购买网站:Gemondo Jewellery
2018/10/23 全球购物
如果让你测试一台高速激光打印机,你都会进行哪些测试
2012/12/04 面试题
移动通信专业自荐信范文
2013/11/12 职场文书
大学生求职工作的自我评价
2014/02/13 职场文书
环境监测与治理技术专业求职信
2014/07/06 职场文书
委托公证书样本
2015/01/23 职场文书
会计试用期自我评价
2015/03/10 职场文书
2015年银行工作总结范文
2015/04/01 职场文书
2015教师年度思想工作总结
2015/04/30 职场文书
追悼会悼词大全
2015/06/23 职场文书
假期读书倡议书3篇
2019/08/19 职场文书
python基于OpenCV模板匹配识别图片中的数字
2021/03/31 Python