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文件和目录操作详解
Feb 08 Python
python自定义解析简单xml格式文件的方法
May 11 Python
浅析Python 中整型对象存储的位置
May 16 Python
python抓取文件夹的所有文件
Feb 27 Python
用Python写一段用户登录的程序代码
Apr 22 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
May 29 Python
Python matplotlib的使用并自定义colormap的方法
Dec 13 Python
浅谈Python反射 & 单例模式
Mar 21 Python
详解Python 中sys.stdin.readline()的用法
Sep 12 Python
python生成特定分布数的实例
Dec 05 Python
为什么说python更适合树莓派编程
Jul 20 Python
python按照list中字典的某key去重的示例代码
Oct 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
php计划任务之验证是否有多个进程调用同一个job的方法
2015/12/07 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
PHP dirname(__FILE__)原理及用法解析
2020/10/28 PHP
for 循环性能比较 提高for循环的效率
2009/03/19 Javascript
jquery 上下滚动广告
2009/06/17 Javascript
屏蔽F1~F12的快捷键的js函数
2010/05/06 Javascript
eval的两组性能测试数据
2012/08/17 Javascript
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
JavaScript AJAX之惰性载入函数
2014/08/27 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
webstorm添加*.vue文件支持
2018/05/08 Javascript
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
2018/06/23 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
vue开发移动端底部导航条功能
2020/04/08 Javascript
[06:37]2014DOTA2国际邀请赛 昔日王者渴望重回巅峰
2014/07/12 DOTA
[01:32]dota2拉比克至宝(222)
2018/12/20 DOTA
[01:27:30]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
[30:00]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第二场 11.28
2020/12/01 DOTA
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
关于python之字典的嵌套,递归调用方法
2019/01/21 Python
使用python实现多维数据降维操作
2020/02/24 Python
HTML5 解决苹果手机不能自动播放音乐问题
2017/12/27 HTML / CSS
美国时装品牌:Nautica(诺帝卡)
2016/08/28 全球购物
Ryderwear澳洲官网:澳大利亚高端健身训练装备品牌
2018/09/18 全球购物
前处理组长岗位职责
2014/03/01 职场文书
专项法律服务方案
2014/06/11 职场文书
爱国口号
2014/06/19 职场文书
2014优秀党员事迹材料
2014/08/14 职场文书
工作经常出错的检讨书
2014/09/13 职场文书
一般基层干部群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
2015年元宵节活动总结
2015/02/06 职场文书
储备店长岗位职责
2015/04/14 职场文书
起诉书范文
2015/05/20 职场文书
2015年小学教导处工作总结
2015/05/26 职场文书
让生命充满爱观后感
2015/06/08 职场文书
世界文化遗产导游词
2019/08/07 职场文书