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 字典(dict)按键和值排序
Jun 28 Python
Python实现购物系统(示例讲解)
Sep 13 Python
python reduce 函数使用详解
Dec 05 Python
Python中几种属性访问的区别与用法详解
Oct 10 Python
Python使用pydub库对mp3与wav格式进行互转的方法
Jan 10 Python
python 计算两个列表的相关系数的实现
Aug 29 Python
python的json中方法及jsonpath模块用法分析
Dec 06 Python
Python爬取腾讯视频评论的思路详解
Dec 19 Python
pytorch 常用线性函数详解
Jan 15 Python
python matplotlib 绘图 和 dpi对应关系详解
Mar 14 Python
解决keras模型保存h5文件提示无此目录问题
Jul 01 Python
python和opencv构建运动检测器的实现
Mar 03 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
基于mysql的论坛(5)
2006/10/09 PHP
PHP打开和关闭文件操作函数总结
2014/11/18 PHP
php 可变函数使用小结
2018/06/12 PHP
json2.js的初步学习与了解
2011/10/06 Javascript
javascript延时加载之defer测试
2012/12/28 Javascript
制作jquery遮罩层效果导航菜单代码分享
2013/12/25 Javascript
javascript根据像素点取位置示例
2014/01/27 Javascript
js的正则test,match,exec详细解析
2014/01/29 Javascript
js实现简单的验证码
2015/12/25 Javascript
有关jQuery中parent()和siblings()的小问题
2016/06/01 Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
2016/12/01 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
2017/02/27 Javascript
nodejs 图解express+supervisor+ejs的用法(推荐)
2017/09/08 NodeJs
如何将HTML字符转换为DOM节点并动态添加到文档中详解
2018/08/19 Javascript
详解vue2.6插槽更新v-slot用法总结
2019/03/09 Javascript
vue 实现微信浮标效果
2019/09/01 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
2020/04/17 Javascript
[02:31]DOTA2帕克 英雄基础教程
2013/11/26 DOTA
Python序列化基础知识(json/pickle)
2017/10/19 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
2017/11/11 Python
对Python3中的input函数详解
2018/04/22 Python
Vue的el-scrollbar实现自定义滚动
2018/05/29 Python
Python实现Dijkstra算法
2018/10/17 Python
python django框架中使用FastDFS分布式文件系统的安装方法
2019/06/10 Python
TensorFlow基于MNIST数据集实现车牌识别(初步演示版)
2019/08/05 Python
python 中xpath爬虫实例详解
2019/08/26 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
2020/06/17 Python
python如何利用Mitmproxy抓包
2020/10/10 Python
localStorage 设置过期时间的方法实现
2018/12/21 HTML / CSS
暑期政治学习心得体会
2014/09/02 职场文书
平安建设汇报材料
2014/12/29 职场文书
房地产销售经理岗位职责
2015/02/02 职场文书
2015年国庆节寄语
2015/08/17 职场文书
医学生自荐信范文(2016精选篇)
2016/01/28 职场文书
小学音乐课教学反思
2016/02/18 职场文书
vue使用refs获取嵌套组件中的值过程
2022/03/31 Vue.js