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入门篇之函数
Oct 20 Python
简介Python中用于处理字符串的center()方法
May 18 Python
Python 中的with关键字使用详解
Sep 11 Python
Python中装饰器兼容加括号和不加括号的写法详解
Jul 05 Python
详解如何利用Cython为Python代码加速
Jan 27 Python
基于Pandas读取csv文件Error的总结
Jun 15 Python
python3实现字符串的全排列的方法(无重复字符)
Jul 07 Python
python实现整数的二进制循环移位
Mar 08 Python
python3.6下Numpy库下载与安装图文教程
Apr 02 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
Aug 20 Python
pytorch 中nn.Dropout的使用说明
May 20 Python
tensorboard 可视化之localhost:6006不显示的解决方案
May 22 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
SSI指令
2006/11/25 PHP
解析PHP中常见的mongodb查询操作
2013/06/20 PHP
浅析Yii2中GridView常见操作
2016/04/22 PHP
PHP简单实现DES加密解密的方法
2016/07/12 PHP
PHP实现APP微信支付的实例讲解
2018/02/10 PHP
php链式操作的实现方式分析
2019/08/12 PHP
网页中可关闭的漂浮窗口实现可自行调节
2013/08/20 Javascript
快速解决jQuery与其他库冲突的方法介绍
2014/01/02 Javascript
推荐9款炫酷的基于jquery的页面特效
2014/12/07 Javascript
Vue.js学习笔记之 helloworld
2016/08/14 Javascript
Javascript中常见的逻辑题和解决方法
2016/09/17 Javascript
Javascript中字符串replace方法的第二个参数探究
2016/12/05 Javascript
简单实现jquery焦点图
2016/12/12 Javascript
js上下视差滚动简单实现代码
2017/03/07 Javascript
jquery平滑滚动到顶部插件使用详解
2017/05/08 jQuery
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
2017/09/22 jQuery
深入浅析ES6 Class 中的 super 关键字
2017/10/20 Javascript
jQuery+ajax读取json数据并按照价格排序示例
2018/03/28 jQuery
在Vue中使用icon 字体图标的方法
2019/06/14 Javascript
Vue 实现分页与输入框关键字筛选功能
2020/01/02 Javascript
[01:55]2014DOTA2国际邀请赛快报:国土生病 紧急去医院治疗
2014/07/10 DOTA
[00:15]TI9观赛名额抽取
2019/07/10 DOTA
Pandas 合并多个Dataframe(merge,concat)的方法
2018/06/08 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
2018/11/07 Python
如何在Cloud Studio上执行Python代码?
2019/08/09 Python
18个Python脚本可加速你的编码速度(提示和技巧)
2019/10/17 Python
python实现超级玛丽游戏
2020/03/18 Python
python matplotlib实现将图例放在图外
2020/04/17 Python
高考考python编程是真的吗
2020/07/20 Python
Python使用windows设置定时执行脚本
2020/11/12 Python
iframe与window.onload如何使用详解
2020/05/07 HTML / CSS
澳大利亚票务和娱乐市场领导者:Ticketmaster
2017/03/03 全球购物
项目资料员岗位职责
2013/12/10 职场文书
思想作风纪律整顿心得体会
2014/09/04 职场文书
学校2016年九九重阳节活动总结
2016/04/01 职场文书
Java Socket实现Redis客户端的详细说明
2021/05/26 Redis