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 相关文章推荐
Django Highcharts制作图表
Aug 27 Python
Python使用正则表达式实现文本替换的方法
Apr 18 Python
Python算术运算符实例详解
May 31 Python
python进阶_浅谈面向对象进阶
Aug 17 Python
python写入并获取剪切板内容的实例
May 31 Python
pycharm修改文件的默认打开方式的步骤
Jul 29 Python
用python的turtle模块实现给女票画个小心心
Nov 23 Python
如何更改 pandas dataframe 中两列的位置
Dec 27 Python
django model 条件过滤 queryset.filter(**condtions)用法详解
May 20 Python
利用Python中的Xpath实现一个在线汇率转换器
Sep 09 Python
Pandas的数据过滤实现
Jan 15 Python
python图像处理 PIL Image操作实例
Apr 09 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 auth_http类库进行身份效验
2009/03/19 PHP
PHP针对JSON操作实例分析
2015/01/12 PHP
PHP数组内存利用率低和弱类型详细解读
2017/08/10 PHP
在 Laravel 中动态隐藏 API 字段的方法
2019/10/25 PHP
最佳JS代码编写的14条技巧
2011/01/09 Javascript
javascript中window.event事件用法详解
2012/12/11 Javascript
html文档中的location对象属性理解及常见的用法
2014/08/13 Javascript
浅谈Node.js中的定时器
2015/06/18 Javascript
javascript中offset、client、scroll的属性总结
2015/08/13 Javascript
浅谈JS原型对象和原型链
2016/03/02 Javascript
JS实现动态增加和删除li标签行的实例代码
2016/10/16 Javascript
详解使用JS如何制作简单的ASCII图与单极图
2017/03/31 Javascript
JS 仿支付宝input文本输入框放大组件的实例
2017/11/14 Javascript
详解ES6中的代理模式——Proxy
2018/01/08 Javascript
js实现控制文件拖拽并获取拖拽内容功能
2018/02/17 Javascript
nodejs实现超简单生成二维码的方法
2018/03/17 NodeJs
详解React服务端渲染从入门到精通
2019/03/28 Javascript
Python的SQLalchemy模块连接与操作MySQL的基础示例
2016/07/11 Python
Python实现判断一行代码是否为注释的方法
2018/05/23 Python
对pandas写入读取h5文件的方法详解
2018/12/28 Python
Python实现DDos攻击实例详解
2019/02/02 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
2019/08/23 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
2020/05/25 Python
Python flask框架实现查询数据库并显示数据
2020/06/04 Python
python报错: 'list' object has no attribute 'shape'的解决
2020/07/15 Python
HTML5 Canvas绘制圆点虚线实例
2015/01/01 HTML / CSS
简单介绍HTML5中的文件导入
2015/05/08 HTML / CSS
Etam俄罗斯:法国女士内衣和家居服网上商店
2019/10/30 全球购物
向全球直邮输送天然健康产品:iHerb.com
2020/05/03 全球购物
数控专业大学生的自我鉴定
2013/11/13 职场文书
经典导游欢迎词大全
2014/01/16 职场文书
八年级物理教学反思
2014/01/19 职场文书
药剂专业个人求职信范文
2014/04/29 职场文书
2015年度优秀员工推荐信
2015/03/23 职场文书
Keras多线程机制与flask多线程冲突的解决方案
2021/05/28 Python
浅谈resultMap的用法及关联结果集映射
2021/06/30 Java/Android